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

數據加載中……

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>
            卡通动漫国产精品| 亚洲电影免费观看高清完整版在线观看 | 欧美另类久久久品| 欧美国产大片| 欧美精品v国产精品v日韩精品| 美国成人直播| 欧美三级日本三级少妇99| 欧美日韩亚洲在线| 国产日本亚洲高清| ●精品国产综合乱码久久久久| 亚洲黄色成人网| 亚洲午夜黄色| 久久久久一本一区二区青青蜜月| 看片网站欧美日韩| 亚洲国产三级在线| 亚洲一区二区三区精品在线| 欧美在线视频二区| 欧美黄色影院| 国产欧美一级| 亚洲日本成人女熟在线观看| 亚洲一区二区三区在线播放| 久久大综合网| 亚洲人体影院| 久久久久国产一区二区三区四区| 欧美黄色成人网| 国产日韩av一区二区| 亚洲黄一区二区三区| 香蕉久久夜色精品国产使用方法| 免费在线观看日韩欧美| 日韩一区二区免费看| 久久国产一二区| 欧美日韩午夜视频在线观看| 国产伦精品一区二区三区免费迷 | 欧美freesex8一10精品| 欧美视频一区二区| 亚洲黄色尤物视频| 久久久欧美一区二区| 一本色道久久综合亚洲91| 久久夜色精品亚洲噜噜国产mv| 欧美日韩国产高清视频| 亚洲欧美日韩精品在线| 久久免费偷拍视频| 国产精品久久久久毛片软件 | 欧美体内谢she精2性欧美| 国产手机视频一区二区| 亚洲精品孕妇| 久久婷婷蜜乳一本欲蜜臀| 亚洲人成毛片在线播放| 久久久精品性| 国产伦理一区| 亚洲一区二区三区免费视频| 欧美激情一区二区三区成人 | 久久成人在线| 亚洲在线观看| 欧美三日本三级三级在线播放| 亚洲电影毛片| 久久香蕉国产线看观看av| 亚洲一区二区三区久久| 国产精品日韩一区| 欧美一区二区大片| 亚洲欧美日韩精品| 国产精品欧美日韩一区二区| 亚洲女同精品视频| 在线视频一区观看| 欧美日韩午夜在线视频| a4yy欧美一区二区三区| 亚洲国产成人av在线 | 欧美午夜电影网| 亚洲天天影视| 夜色激情一区二区| 国产精品毛片高清在线完整版| 亚洲一区二区三区中文字幕在线| 99精品久久| 国产日韩欧美精品一区| 久久久欧美一区二区| 欧美专区一区二区三区| 国内精品免费在线观看| 久久视频这里只有精品| 久久青草久久| 亚洲精品中文字幕女同| 日韩视频在线一区二区| 欧美视频在线视频| 亚洲欧美文学| 欧美在线网站| 亚洲国产欧美一区二区三区同亚洲| 欧美国产成人精品| 欧美啪啪一区| 亚洲一区二区在| 亚洲欧美在线免费观看| 国内精品久久久久影院薰衣草| 欧美 日韩 国产精品免费观看| 欧美jizz19hd性欧美| 亚洲免费影视| 久久久91精品国产一区二区三区| 欧美一站二站| 国产精品日韩精品欧美在线| 国产欧美日韩不卡免费| 久久久久久久精| 欧美成人小视频| 欧美一区二区在线看| 久久久无码精品亚洲日韩按摩| 正在播放亚洲一区| 久久精品国产亚洲一区二区| 在线视频你懂得一区二区三区| 欧美资源在线| 亚洲一区久久久| 久久在线视频| 香蕉久久夜色精品国产使用方法| 欧美高清在线| 久久亚洲精品网站| 欧美日韩视频在线第一区| 久久精精品视频| 欧美日韩精品免费观看视一区二区| 性做久久久久久久久| 欧美高清视频www夜色资源网| 久久国产免费看| 欧美日一区二区三区在线观看国产免| 久久九九国产精品怡红院| 欧美另类极品videosbest最新版本| 久久国产福利国产秒拍| 欧美日韩中文字幕精品| 欧美黄色网络| 狠狠色狠狠色综合日日tαg| 亚洲乱码一区二区| 亚洲国产精品成人va在线观看| 亚洲综合日韩在线| 一区二区三区精密机械公司| 久久婷婷久久| 久久久女女女女999久久| 国产精品久久久久影院色老大| 亚洲国产精品999| 亚洲电影毛片| 久久综合久久久| 欧美成人午夜77777| 在线观看中文字幕不卡| 久久久精品动漫| 免费中文日韩| 亚洲国产精品女人久久久| 久久―日本道色综合久久| 久久精品中文字幕一区| 国产伦精品一区| 欧美一区二区三区免费看| 久久国产福利国产秒拍| 国语自产在线不卡| 久久久久久久999| 欧美成人一区在线| 亚洲精选一区| 欧美私人啪啪vps| 亚洲天堂免费在线观看视频| 亚洲主播在线观看| 国产精品激情电影| 亚洲午夜av电影| 欧美在线高清视频| 国产一区二区三区在线免费观看| 午夜国产不卡在线观看视频| 久久成年人视频| 一区二区三区在线不卡| 久久亚洲综合色一区二区三区| 亚洲成在人线av| 亚洲美女精品成人在线视频| 欧美日韩伦理在线| 国产精品综合色区在线观看| 亚洲一区激情| 久久久欧美一区二区| 亚洲成人在线| 欧美精品videossex性护士| 在线视频日韩精品| 玖玖视频精品| 亚洲宅男天堂在线观看无病毒| 国产欧美综合一区二区三区| 久久久久国色av免费看影院| 亚洲国产日韩欧美在线99| 亚洲欧美日韩网| 影音先锋久久久| 欧美日韩一本到| 久久爱91午夜羞羞| 亚洲毛片一区| 欧美大片免费| 欧美影院视频| 一区二区三区 在线观看视频 | 亚洲高清久久| 国产精品久久久久久av福利软件| 欧美一区二区视频97| 91久久中文| 欧美xx69| 久久精品一区二区国产| 99精品福利视频| 在线看欧美视频| 国产精品视频你懂的| 欧美日韩美女在线观看| 久久全国免费视频| 欧美一区二区三区在线看| 一区二区欧美精品| 亚洲国产精品久久人人爱蜜臀 | 日韩视频免费观看高清在线视频 | 久久久久国产精品麻豆ai换脸 | 亚洲国产欧美一区二区三区同亚洲| 欧美在线一区二区| 亚洲一区二区三区高清不卡| 91久久综合|