青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

數據加載中……

URAL 1019 A line painting

A Line painting

Time Limit: 2.0 second
Memory Limit: 16 MB
The segment of numerical axis from 0 to 109 is painted into white color. After that some parts of this segment are painted into black, then some into white again and so on. In total there have been made N re-paintings (1 ≤ N ≤ 5000). You are to write a program that finds the longest white open interval after this sequence of re-paintings.

Input

The first line of input contains the only number N. Next N lines contain information about re-paintings. Each of these lines has a form:
ai bi ci
where ai and bi are integers, ci is symbol 'b' or 'w', ai, bi, ci are separated by spaces.
This triple of parameters represents repainting of segment from ai to bi into color ci ('w' — white, 'b' — black). You may assume that 0 < ai < bi < 109.

Output

Output should contain two numbers x and y (x < y) divided by space(s). These numbers should define the longest white open interval. If there are more than one such an interval output should contain the one with the smallest x.

Sample

input output
4
1 999999997 b
40 300 w
300 634 w
43 47 b
47 634                                                        
這個題目最直接的辦法是離散化,離散化了之后就好折騰了,因為操作指令很少,所以我選擇離散+樸素染色.
復雜度上界為O(M*M),這里M表示離散化后得到的區間個數.

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 const int MAXN=10005;
 5 const int MAXL=1000000000;
 6 struct re
 7 {
 8   int a,b;
 9   char c;
10 }op[MAXN];
11 
12 int n,p=0,que[MAXN];
13 bool color[MAXN<<1];
14 
15 /* 二分查找 */
16 int find(int num)
17 {
18   int l=0,r=p+1,mid;
19   while (r-l>1)
20     {
21       mid=(l+r) >> 1;
22       (que[mid]<=num)? l=mid : r=mid;
23       if (que[l]==num) return l;
24     }
25   return l;
26 }
27 
28 void disp(re& op)
29 {
30   /* 區間由1開始數,而不是由0開始 */
31   op.a=find(op.a)+1;
32   op.b=find(op.b);
33 }
34 
35 void mark(int l,int r,char c)
36 {
37   for (int i=l;i<=r;++i) color[i]=(c=='b');
38 }
39 
40 int main()
41 {
42  // freopen("data.in","r",stdin);
43  // freopen("data.out","w",stdout);
44   cin >> n;
45   for (int i=0;i<n;++i)
46     {
47       cin >> op[i].a >> op[i].b >> op[i].c;
48       que[++p]=op[i].a;
49       que[++p]=op[i].b;
50     }
51   que[++p]=MAXL;
52   /* 刪除重復出現的數字 */
53   int rp=0;
54   for (int i=1;i<=p;++i)
55     if (que[rp]!=que[i]) que[++rp]=que[i];
56   p=rp;
57   /* 排序,便于定位和離散化 */
58   sort(que,que+p+1);
59   que[p+1]=MAXL+1;
60   /* 對操作進行離散處理 */
61   for (int i=0;i<n;++i) disp(op[i]);
62   /* 處理操作序列 */
63   memset(color,0,sizeof(color));
64   for (int i=0;i<n;++i) mark(op[i].a,op[i].b,op[i].c);
65   int t=1,a,b,mlen=0;
66   for (int i=2;i<=p+1;++i)
67     if (color[i]!=color[t] || i>p)
68       { 
69     if ((!color[t]) && (que[i-1]-que[t-1]>mlen)) { a=que[t-1];b=que[i-1];mlen=que[i-1]-que[t-1];}
70     t=i;
71       }
72   cout << a << ' ' << b << endl;
73   //system("pause");
74   return 0;
75 }
76 
個別目標遠大的同學可能并不僅僅是想解決這個題目,這時候建議你使用離散化+線段樹,復雜度會大大地降低

posted on 2009-07-20 15:00 Chen Jiecao 閱讀(439) 評論(0)  編輯 收藏 引用 所屬分類: URAL

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            性欧美videos另类喷潮| 亚洲狼人精品一区二区三区| 中文国产一区| 一区二区三区四区五区精品| 国产精品国产三级国产a| 亚洲欧美视频在线观看视频| 午夜精品国产| 亚洲全黄一级网站| 亚洲精品一品区二品区三品区| 欧美性猛交一区二区三区精品| 性色av一区二区怡红| 久久国产主播| 亚洲精品一区二区三区不| 夜夜嗨av一区二区三区免费区| 国产精品久久久99| 久久人91精品久久久久久不卡| 亚洲国产另类久久久精品极度| 欧美国产日本| 国产精品日韩一区| 牛牛影视久久网| 国产精品狼人久久影院观看方式| 久久精品电影| 欧美激情成人在线视频| 午夜精品视频在线观看| 久久国产欧美精品| 国产精品99久久久久久久vr| 欧美影视一区| 在线一区二区三区做爰视频网站| 午夜精品久久久久久久99樱桃| 亚洲激情一区| 午夜精品免费| 亚洲深夜av| 老司机精品视频一区二区三区| 亚洲免费一在线| 欧美大片网址| 免费观看久久久4p| 国产精自产拍久久久久久| 亚洲国产美女| 激情婷婷欧美| 午夜精品在线| 午夜精品国产更新| 欧美日韩精品综合| 亚洲大胆人体在线| 伊人久久久大香线蕉综合直播| 亚洲无限av看| 99在线精品视频在线观看| 欧美有码在线观看视频| 亚洲永久在线| 欧美日韩一区在线| 亚洲精品久久视频| 亚洲经典三级| 久久综合亚洲社区| 老巨人导航500精品| 国产欧美在线播放| 亚洲视频你懂的| 亚洲视频在线免费观看| 欧美激情视频免费观看| 亚洲第一天堂av| 亚洲国产导航| 免费欧美在线视频| 男女精品网站| 91久久久久久久久| 欧美大成色www永久网站婷| 欧美h视频在线| 亚洲大片在线| 欧美二区在线播放| 亚洲黄一区二区| 夜色激情一区二区| 欧美日韩精品三区| 一区二区三区日韩在线观看| 亚洲欧美日本国产有色| 国产精品毛片一区二区三区 | 国产午夜精品理论片a级大结局 | 一区二区久久久久| 亚洲综合精品一区二区| 国产精品日韩久久久| 亚洲欧美在线看| 噜噜噜噜噜久久久久久91| 亚洲国产精品999| 欧美人在线观看| 亚洲一区二区三| 久久婷婷国产综合尤物精品| 亚洲高清av| 欧美日韩国产成人在线免费| 一区二区三区视频观看| 久久久噜噜噜久噜久久| 亚洲国产精品欧美一二99| 欧美日韩精品免费看| 亚洲综合日韩中文字幕v在线| 裸体女人亚洲精品一区| 91久久精品一区| 国产精品久久久一区二区三区| 欧美一区二区精美| 亚洲高清在线播放| 香蕉国产精品偷在线观看不卡| 黄色日韩网站视频| 欧美另类一区| 欧美一区二区精品在线| 亚洲国产第一| 久久精品国产一区二区三区| 亚洲三级视频| 国产一区二区久久精品| 欧美精品在线看| 欧美一区二区三区免费看| 亚洲欧洲精品一区二区三区| 久久九九久久九九| 夜夜嗨一区二区三区| 影音先锋成人资源站| 欧美亚韩一区| 美国三级日本三级久久99| 亚洲专区在线| 亚洲精品一二| 欧美+日本+国产+在线a∨观看| 亚洲午夜三级在线| 亚洲三级电影全部在线观看高清| 国产老肥熟一区二区三区| 欧美区一区二| 久久综合伊人77777麻豆| 亚洲一区二区黄| 亚洲剧情一区二区| 欧美国产一区二区| 久久人人爽国产| 欧美一区午夜精品| 亚洲欧美电影在线观看| 亚洲精品九九| 亚洲电影网站| 一区二区三区在线视频播放| 国产精品视屏| 国产精品久久久久久久7电影| 欧美精品亚洲| 欧美精品免费视频| 欧美chengren| 毛片一区二区三区| 麻豆成人在线| 蜜臀久久久99精品久久久久久| 欧美中文在线视频| 欧美一级理论片| 西瓜成人精品人成网站| 午夜在线一区二区| 欧美一区二区久久久| 欧美一区二区性| 欧美有码在线视频| 久久久久成人精品免费播放动漫| 欧美一级片久久久久久久| 性做久久久久久| 久久国产天堂福利天堂| 久久精品九九| 久久精品卡一| 蜜桃视频一区| 欧美日韩国产精品成人| 欧美日韩中国免费专区在线看| 欧美视频一区| 国产精品乱码一区二三区小蝌蚪| 国产精品日韩一区二区| 国产综合久久久久久鬼色| 极品少妇一区二区三区| 亚洲国产日韩欧美在线99 | 亚洲激情电影中文字幕| 亚洲精品婷婷| 亚洲婷婷免费| 欧美伊人精品成人久久综合97| 久久午夜电影| 亚洲国内自拍| 亚洲欧美电影在线观看| 久久精品一区二区国产| 欧美国产综合一区二区| 国产精品久久久久久久久婷婷| 国产日产欧美一区| 亚洲精品欧美专区| 亚欧美中日韩视频| 欧美成人dvd在线视频| 日韩一级不卡| 久久久精品久久久久| 欧美日韩福利| 国产真实乱偷精品视频免| 日韩一区二区电影网| 久久精品国产99| 亚洲黄色三级| 欧美一区二区在线| 欧美激情综合色| 国产午夜精品视频免费不卡69堂| 91久久亚洲| 久久精品国产久精国产一老狼| 亚洲二区视频| 欧美诱惑福利视频| 欧美日韩视频在线一区二区 | 久久精品成人一区二区三区| 亚洲国产精品一区二区第四页av| 亚洲在线1234| 欧美日本不卡视频| 精东粉嫩av免费一区二区三区| 亚洲天堂av在线免费| 欧美成人首页| 欧美综合国产| 国产精品你懂的在线| 亚洲美女诱惑| 欧美国产亚洲视频| 久久精品一区二区三区不卡| 国产伦精品一区二区三区四区免费 | 国模吧视频一区|