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

數據加載中……

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>
            国产精品久久久久久久久久ktv| 久久久欧美精品| 欧美日本一道本| 一区二区三区日韩| 亚洲综合国产激情另类一区| 国内精品久久久久影院优 | 欧美日韩在线综合| 亚洲欧美春色| 久久激情五月激情| 日韩午夜在线| 午夜精品免费视频| 亚洲国产黄色片| 在线综合亚洲欧美在线视频| 国产伊人精品| 最新日韩在线| 国产九区一区在线| 欧美激情在线免费观看| 欧美日韩日日夜夜| 久久夜色精品国产噜噜av| 欧美精品97| 久久久91精品国产一区二区精品| 蜜桃久久精品乱码一区二区| 午夜电影亚洲| 欧美风情在线观看| 久久激情五月婷婷| 欧美另类一区| 欧美成人首页| 国产日韩精品一区二区浪潮av| 免费成人高清| 国产农村妇女毛片精品久久莱园子| 欧美96在线丨欧| 国产日韩欧美一区在线| 日韩午夜在线观看视频| 亚洲高清不卡在线| 欧美一区网站| 午夜免费电影一区在线观看| 欧美高清在线| 免费欧美网站| 国内精品福利| 亚洲欧美国产精品va在线观看| 日韩视频―中文字幕| 久久精品国产一区二区电影| 午夜影视日本亚洲欧洲精品| 欧美精品福利在线| 亚洲大片av| 在线看国产一区| 久久精品在线视频| 久久久久久**毛片大全| 国产精品欧美久久久久无广告| 国产精品大片wwwwww| 亚洲国产精品成人久久综合一区| 国产亚洲精品美女| 亚洲欧美日韩中文视频| 亚洲综合成人在线| 欧美私人网站| 这里只有精品视频在线| 99精品视频免费观看视频| 蜜桃av综合| 亚洲大片精品永久免费| 亚洲国产一区二区三区青草影视| 久久久久在线| 欧美成人乱码一区二区三区| 伊人久久男人天堂| 老鸭窝毛片一区二区三区| 欧美暴力喷水在线| 亚洲电影免费观看高清| 榴莲视频成人在线观看| 欧美国产精品久久| 亚洲精品孕妇| 欧美性大战久久久久久久蜜臀| 一本一道久久综合狠狠老精东影业 | 影音先锋日韩精品| 另类国产ts人妖高潮视频| 欧美成人午夜剧场免费观看| 91久久夜色精品国产网站| 欧美精品高清视频| 一区二区三区三区在线| 欧美一区=区| 永久免费精品影视网站| 欧美大片免费久久精品三p| 99国产精品一区| 欧美一区观看| 亚洲福利av| 欧美午夜理伦三级在线观看| 欧美一区午夜视频在线观看| 亚洲成色777777女色窝| 在线亚洲欧美| 国产自产在线视频一区| 欧美激情国产高清| 亚洲欧美精品一区| 欧美成人高清| 亚洲欧美一区二区激情| 樱花yy私人影院亚洲| 欧美理论在线播放| 欧美一区二区啪啪| 亚洲欧洲精品天堂一级| 欧美专区亚洲专区| 亚洲美女黄色片| 国产亚洲欧美一区在线观看 | 欧美亚洲在线播放| 亚洲国产99| 久久久久久久欧美精品| 999亚洲国产精| 激情综合五月天| 国产精品久久国产三级国电话系列 | 亚洲在线观看免费| 免费观看成人| 欧美一区影院| 99天天综合性| 国产一区激情| 国产精品美女久久久| 牛牛影视久久网| 欧美在线观看一区二区三区| 一本大道久久a久久精品综合| 久久婷婷激情| 久久精品1区| 亚洲一区二区精品视频| 亚洲人成亚洲人成在线观看| 国产一区二区黄| 国产精品欧美日韩一区| 欧美精品1区| 欧美成人精精品一区二区频| 欧美在线视频播放| 亚洲欧美日韩精品久久久久| 99精品视频一区| 亚洲人成网站在线观看播放| 免费观看30秒视频久久| 葵司免费一区二区三区四区五区| 亚洲欧美视频一区二区三区| 夜夜嗨av一区二区三区网站四季av| 精品av久久久久电影| 国产一区二区精品久久| 国产精品久久久久久久久久久久久久 | 亚洲欧美日韩在线不卡| 亚洲性图久久| 亚洲女人天堂成人av在线| 在线亚洲高清视频| 亚洲视频在线视频| 一本久久a久久精品亚洲| 日韩视频在线永久播放| 99在线热播精品免费| 一区二区不卡在线视频 午夜欧美不卡'| 91久久香蕉国产日韩欧美9色| 亚洲第一黄色| 亚洲精品久久久久久久久久久 | 亚洲午夜伦理| 午夜精品视频在线观看| 亚洲免费影院| 欧美一区二区啪啪| 久久精品五月婷婷| 久久一区二区三区超碰国产精品| 久久久久9999亚洲精品| 欧美11—12娇小xxxx| 亚洲人屁股眼子交8| 一本综合精品| 久久国产黑丝| 欧美成人免费在线观看| 欧美日韩在线精品| 国产免费成人| 在线电影国产精品| 日韩亚洲视频在线| 午夜久久黄色| 猛男gaygay欧美视频| 亚洲国产一区二区三区在线播| 91久久精品国产91性色| 亚洲制服少妇| 蜜臀久久久99精品久久久久久 | 亚洲综合导航| 美女露胸一区二区三区| 欧美日韩精品不卡| 韩国成人精品a∨在线观看| 亚洲日本乱码在线观看| 亚洲欧美中文另类| 欧美gay视频| 在线一区二区日韩| 美女精品国产| 欧美日韩黄色一区二区| 国内精品久久久久久影视8| 亚洲三级免费观看| 久久久久国产一区二区| 亚洲精品一区二区三区99| 欧美自拍丝袜亚洲| 国产精品爱久久久久久久| 一区二区视频免费在线观看 | 国产最新精品精品你懂的| 亚洲理伦在线| 久久亚洲精品网站| 亚洲一区二区视频| 欧美日韩国产页| 亚洲国产高清高潮精品美女| 欧美一级免费视频| 日韩视频中文字幕| 欧美好骚综合网| 在线精品亚洲| 久久久久国色av免费看影院| 一区二区三区日韩欧美| 欧美人与禽性xxxxx杂性| 亚洲国产午夜| 久久影视三级福利片| 亚洲欧美日本精品|