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

數據加載中……

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| 亚洲人成毛片在线播放女女| 女人香蕉久久**毛片精品| 亚洲精品四区| 亚洲午夜视频在线观看| 国产亚洲综合精品| 亚洲成人直播| 国产精品毛片一区二区三区 | 欧美精品在线网站| 亚洲午夜精品久久久久久浪潮 | 久久影视三级福利片| 久久亚洲国产精品日日av夜夜| 亚洲精品乱码久久久久久按摩观 | 国产精品99久久久久久久女警| 亚洲一区在线免费| 在线观看视频一区二区| 亚洲三级色网| 国产偷自视频区视频一区二区| 女人色偷偷aa久久天堂| 欧美天天影院| 女人香蕉久久**毛片精品| 国产精品大全| 欧美激情精品| 国产伦精品一区二区三区视频黑人 | 国产午夜精品视频| 91久久精品久久国产性色也91| 欧美色欧美亚洲高清在线视频| 欧美影院精品一区| 欧美日韩国产综合新一区| 欧美一级视频精品观看| 欧美成年人视频网站| 久久av老司机精品网站导航 | 中文亚洲免费| 亚洲日韩视频| 久久精品二区三区| 午夜日韩电影| 欧美精品在线一区二区三区| 久久在线视频| 国产一区二区三区久久精品| 日韩网站免费观看| 亚洲日本成人女熟在线观看| 欧美一区二区三区免费观看| 亚洲天堂黄色| 欧美美女bbbb| 91久久精品国产91性色tv| 一区三区视频| 久久gogo国模啪啪人体图| 午夜精品免费视频| 欧美日韩一区二区在线观看视频 | 亚洲五月婷婷| 欧美日韩国产精品成人| 欧美国产日韩一二三区| 在线日韩av| 久久亚洲国产精品一区二区| 久久一区二区三区av| 国产一区二区成人久久免费影院| 亚洲一区在线播放| 欧美伊人久久| 国产一区二区日韩精品| 久久不射中文字幕| 久久久久久穴| 在线观看成人一级片| 久久偷窥视频| 亚洲国产精品久久久久秋霞蜜臀| 在线视频观看日韩| 欧美不卡视频| 99综合视频| 欧美一级视频| 尤物九九久久国产精品的分类| 久久夜色精品国产亚洲aⅴ| 欧美不卡三区| 一区二区免费在线观看| 国产精品成人一区二区三区夜夜夜| 亚洲午夜精品久久久久久浪潮| 欧美亚洲专区| 影音先锋久久精品| 欧美高清你懂得| 一区二区三区四区五区精品| 欧美影院久久久| 亚洲国产女人aaa毛片在线| 欧美激情精品久久久久久蜜臀 | 亚洲黄网站在线观看| 在线综合亚洲欧美在线视频| 国产精品欧美久久| 久久精品国产久精国产思思| 亚洲国产精品高清久久久| 中文一区二区在线观看| 国产三级精品三级| 欧美成va人片在线观看| 中日韩美女免费视频网址在线观看| 久久丁香综合五月国产三级网站| 在线观看的日韩av| 欧美午夜无遮挡| 久久亚洲欧美国产精品乐播| 日韩午夜免费| 欧美xxxx在线观看| 午夜精品在线视频| 亚洲日本乱码在线观看| 国产精品久久久久久久9999 | 亚洲——在线| 亚洲高清一区二| 欧美在线精品一区| 99热精品在线观看| 极品尤物一区二区三区| 国产精品大片| 欧美日本在线观看| 久久久五月婷婷| 亚洲欧美成人| 日韩视频在线免费| 欧美黑人在线播放| 久久久一区二区| 先锋a资源在线看亚洲| 亚洲美女在线观看| 激情一区二区三区| 国产私拍一区| 国产精品视频第一区| 欧美乱妇高清无乱码| 亚洲欧美在线一区| 一区视频在线看| 欧美一区二区三区四区高清| 亚洲少妇在线| 亚洲伊人久久综合| 久久成人18免费网站| 国产精品热久久久久夜色精品三区 | 国产精品中文字幕欧美| 欧美精品www| 美女精品自拍一二三四| 欧美在线视频观看免费网站| 亚洲视频1区| 99视频精品在线| 亚洲激情视频网| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美一区二区免费视频| 亚洲一区影音先锋| 亚洲午夜女主播在线直播| 99国内精品| 亚洲性夜色噜噜噜7777| 亚洲无限av看| 欧美亚洲日本国产| 欧美一级免费视频| 久久精品国产99国产精品| 久久久久欧美精品| 六月婷婷一区| 欧美另类亚洲| 国产精品久久久久久超碰 | 久久久999精品视频| 久久精品中文字幕一区二区三区| 久久国产天堂福利天堂| 久久精品视频在线看| 久久亚洲综合色一区二区三区| 久久久久久网站| 欧美mv日韩mv国产网站| 欧美精品www| 国产精品美女久久久| 国产亚洲成精品久久| 伊人狠狠色丁香综合尤物| 亚洲福利视频二区| 9人人澡人人爽人人精品| 亚洲午夜小视频| 久久精品理论片| 欧美国产日韩精品| 一区二区不卡在线视频 午夜欧美不卡在 | 一级日韩一区在线观看| 午夜在线观看免费一区| 久久久亚洲一区| 亚洲高清色综合| 在线综合亚洲| 欧美在线视频观看免费网站| 欧美v日韩v国产v| 国产精品视频自拍| 亚洲缚视频在线观看| 亚洲一区二区三区午夜| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲黄色成人久久久| 亚洲欧美日韩另类| 男人的天堂亚洲| 国产精品综合久久久| 亚洲黄色成人久久久| 欧美伊人久久久久久午夜久久久久| 欧美高清成人| 亚洲欧美日韩综合aⅴ视频| 久久国产一区| 欧美日韩国产麻豆| 韩国一区电影| 亚洲女性喷水在线观看一区| 久久久精品久久久久| 亚洲精品一区二区三区在线观看 | 欧美一区91| 国产精品二区二区三区| 91久久极品少妇xxxxⅹ软件| 欧美诱惑福利视频| 亚洲九九爱视频| 久久伊人一区二区| 国产精品一区二区三区乱码| 99伊人成综合| 欧美激情一区二区三区在线视频观看 | 欧美不卡福利|