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

數據加載中……

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>
            免费在线成人| 国产亚洲精品美女| 亚洲免费伊人电影在线观看av| 亚洲高清视频一区| 老牛国产精品一区的观看方式| 久久精品99国产精品| 欧美一区二区黄色| 久久久久国产成人精品亚洲午夜| 裸体一区二区三区| 91久久久久久久久久久久久| 99re这里只有精品6| 一区二区三区高清视频在线观看| 在线视频日韩| 久久精品二区三区| 欧美精品少妇一区二区三区| 国产精品欧美日韩| 亚洲激情在线观看| 亚洲一区二区三区乱码aⅴ| 久久成人免费| 亚洲国产精品va| 中文欧美字幕免费| 久久性天堂网| 国产精品久久激情| 亚洲人成毛片在线播放| 性欧美精品高清| 亚洲大片精品永久免费| 制服诱惑一区二区| 亚洲午夜av在线| 欧美一区二区三区免费在线看| 麻豆精品传媒视频| 99国产精品久久久久久久久久| 欧美一区二区网站| 欧美日韩hd| 在线观看精品一区| 午夜精品一区二区三区四区| 亚洲黄色av一区| 久久亚洲春色中文字幕久久久| 国产酒店精品激情| 亚洲性线免费观看视频成熟| 欧美激情视频一区二区三区免费| 午夜精品久久久久久99热软件 | 久久久久久欧美| 一本久久综合亚洲鲁鲁五月天| 免费的成人av| 亚洲国产黄色| 久久综合九色综合网站| 亚洲欧美一区二区三区极速播放 | 久久久久国产精品一区三寸| 国产精品日本欧美一区二区三区| 99在线精品视频在线观看| 欧美凹凸一区二区三区视频| 久久成人一区| 韩日精品视频| 久久亚洲色图| 可以免费看不卡的av网站| 国内精品国产成人| 久久精品亚洲一区二区| 亚洲在线观看视频| 国产精品综合久久久| 欧美一区二区播放| 欧美一区中文字幕| 激情另类综合| 欧美成人综合一区| 欧美大片免费观看| 在线视频你懂得一区二区三区| 99re8这里有精品热视频免费| 国产精品v亚洲精品v日韩精品 | 欧美国产欧美亚洲国产日韩mv天天看完整 | 新狼窝色av性久久久久久| 在线视频中文亚洲| 国产精品久久久久久久久久久久 | 亚洲一区二区在线免费观看视频| 国产精品电影网站| 欧美一区二区视频免费观看| 午夜天堂精品久久久久| 国产中文一区二区三区| 欧美福利影院| 国产精品二区在线| 久久久精品2019中文字幕神马| 欧美综合国产| 亚洲免费成人| 亚洲欧美成人一区二区在线电影| 国产日韩精品电影| 欧美高潮视频| 国产精品色午夜在线观看| 久久久久久高潮国产精品视| 久久一二三区| 欧美国产日韩一区| 欧美激情国产高清| 蜜桃av综合| 一本久道久久综合婷婷鲸鱼| 洋洋av久久久久久久一区| 国产精品一区一区三区| 久久中文精品| 欧美日韩精品免费观看视一区二区| 亚洲午夜一二三区视频| 久久大香伊蕉在人线观看热2| 亚洲黄网站在线观看| 日韩一级片网址| 黄色欧美成人| 亚洲一区制服诱惑| 亚洲日本在线观看| 亚洲欧美日韩另类| 亚洲老板91色精品久久| 性欧美xxxx大乳国产app| 亚洲精品永久免费| 久久精品欧洲| 久久国产一区二区| 国产精品mm| 欧美激情欧美狂野欧美精品| 国产三级精品三级| 夜夜精品视频一区二区| 亚洲精品美女在线观看| 欧美在线一二三四区| 亚洲视频中文| 欧美激情偷拍| 久久综合九九| 国产午夜精品理论片a级大结局 | 欧美成黄导航| 久久偷窥视频| 国产日韩欧美精品| 一区二区三区视频观看| 一区二区三区在线视频观看 | 亚洲尤物在线| 亚洲一区观看| 欧美激情精品久久久久久免费印度| 久久久777| 国产欧美日韩综合一区在线观看| 亚洲久色影视| 欧美在线观看天堂一区二区三区 | 亚洲在线观看免费视频| 夜夜嗨av色一区二区不卡| 美女国产一区| 另类av一区二区| 今天的高清视频免费播放成人| 午夜精品理论片| 欧美在线播放| 国产精品视频xxxx| 宅男精品导航| 欧美亚洲一级| 国产三级精品三级| 久久精品主播| 麻豆成人91精品二区三区| 激情文学综合丁香| 久久成人人人人精品欧| 久久一区二区三区av| 影音先锋中文字幕一区| 久久久噜噜噜久久中文字免| 玖玖玖免费嫩草在线影院一区| 韩国女主播一区| 免费成人av在线| 99精品国产热久久91蜜凸| 亚洲一区二区三区四区五区午夜| 欧美性猛交xxxx免费看久久久| 亚洲已满18点击进入久久| 久久久久久亚洲精品不卡4k岛国| 狠狠色狠狠色综合系列| 欧美第一黄网免费网站| 日韩西西人体444www| 欧美在线观看天堂一区二区三区| 韩日成人av| 欧美日本一区二区高清播放视频| 亚洲免费观看高清完整版在线观看熊 | 夜色激情一区二区| 欧美在线网址| 一区二区亚洲精品| 欧美福利一区| 亚洲一区在线观看免费观看电影高清| 久久国产夜色精品鲁鲁99| 亚洲黄页一区| 国产精品福利在线观看网址| 欧美一区二区三区电影在线观看| 欧美高清视频在线播放| 亚洲免费人成在线视频观看| 狠狠色综合日日| 欧美视频第二页| 久久综合伊人77777| 亚洲手机视频| 亚洲国产高清自拍| 久久精品日产第一区二区三区| 亚洲精品美女在线观看| 国产在线观看91精品一区| 欧美日韩 国产精品| 久久精品一级爱片| 一区二区欧美国产| 欧美高清日韩| 老司机午夜精品视频| 性久久久久久久久久久久| 99国产一区| 在线欧美日韩| 激情六月婷婷综合| 国产婷婷97碰碰久久人人蜜臀| 欧美日韩成人| 欧美波霸影院| 久久综合中文字幕| 亚洲电影免费观看高清| 欧美高清视频在线观看| 亚洲第一天堂av| 老司机久久99久久精品播放免费 | 欧美福利视频一区|