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

算法學社
記錄難忘的征途
posts - 141,comments - 220,trackbacks - 0

題目描述:

    定義區(qū)間的交,并,差操作。假設當前坐標軸區(qū)間集合為S(開始為空),給大量的詢問,格式為 命令+區(qū)間T,命令'I'代表S = S交T,'U'代表并,D和C代表S=S-T和S=T-S,S代表S=S-T并T-S。輸出最后的區(qū)間集合S。

吐槽:

    1. 從昨天下午做到今天晚上... 好吧我承認我弱
    2. 一開始沒有用延時操作,記錄了每個操作的時間,最后離線處理。然后我抓狂了....
    3. 后來改用樸素版線段樹,寫著寫著發(fā)現這些不是用zkw版線段樹也能實現么... 然后就調到了今天晚上...
    4. 由于實現的關系,運行速度與樸素版旗鼓相當..........

算法描述:

    首先將L和R乘以2以解決開閉區(qū)間的問題....
    
    剩下的其實就是線段覆蓋問題:
        1. U: 將[L,R]賦值為1
        2. I: 將[0,L-1] 和 [R+1,MAXN]賦值為0
        3. D: 將[L,R]賦值為0
        4. S: 將[L,R]里的所有值取反
        5. C: 將[L,R]里的所有值取反,并且將[0,L-1]和[R+1,MAXN]賦值為0
    賦值那部分就不講了.... 主要是取反,用到線段樹的延時操作,然后再下次訪問的時候向下更新(樸素版的思路)
    其實zkw版可以先預處理一下,就是將1到L-1的點順次更新一遍(因為在上面的操作肯定是后加的),然后將1到R+1的點順次更新一遍。
    這樣做一定可以將需要維護的節(jié)點預先更新一遍...
    
    最后統計的時候掃一遍就可以了...
    ms比樸素版還是好寫一些的...
 1 #include<iostream>
 2 #include<cassert>
 3 #include<cstring>
 4 #include<cstdio>
 5 using namespace std;
 6 #define re(i,n) for(int i=0;i<n;i++)
 7 #define re1(i,n) for(int i=1;i<=n;i++)
 8 #define re2(i,n) for(int i=0;i<=n;i++)
 9 #define re3(i,n) for(int i=1;i<n;i++)
10 #define debug1
11 const int V = 66000*2;
12 int M;
13 struct node{
14     int color,x;
15     node(){color=x=0;}
16 } seg[V*4];
17 void solve(int x){
18     if(seg[x].color!=-1) seg[x].color ^= 1;
19     else seg[x].x ^= 1;
20 }
21 void upt(int x){
22     if(x==1) return;
23     upt(x>>1);
24     if(x >M) return;
25     if(seg[x].color!=-1){
26         seg[x<<1].color = seg[x<<1|1].color = seg[x].color;
27         seg[x<<1].x = seg[x<<1|1].x =0;
28         seg[x].color = -1;
29     }
30     if(seg[x].x){
31         solve(x <<1);
32         solve(x <<1|1);
33         seg[x].x = 0;
34     }
35 }
36 void ins(int l,int r,int p,int c=0){
37     if(l>r) return;
38     l = M+l; r = M+r+2;
39     upt(l); upt(r);
40     for(;l^r^1;l>>=1,r>>=1){
41         if(l&1^1) if(p) solve(l^1); else seg[l^1].color = c, seg[l^1].x = 0;
42         if(r&1) if(p) solve(r^1); else seg[r^1].color = c, seg[r^1].x = 0;
43     }
44 }
45 inline void OP(int l,int r){
46     printf("%c%d,%d%c ", l&1 ? '(':'[', l>>1 , r&1 ? r+1>>1: r>>1, r&1?')':']');
47 }
48 int main(){
49     char cmd[2];
50     int l,r;char x,y;
51     re(i,30) if((1<<i) > V) {M = 1<<i; break;}
52     while(~scanf("%s %c%d,%d%c",cmd,&x,&l,&r,&y)){
53     //    printf("%s %s\n",cmd,ch);
54         l<<=1,r<<=1; if(x=='(') l++; if(y==')') r--;
55         switch(cmd[0]){
56             case 'U': 
57                 ins(l,r,0,1); break;
58             case 'I': 
59                 ins(0,l-1,0,0); ins(r+1,V,0,0); break;
60             case 'C': 
61                 ins(l,r,1); ins(0,l-1,0,0); ins(r+1,V,0,0); break;
62             case 'D': ins(l,r,0,0); break;
63             case 'S': ins(l,r,1); break;
64         }
65     }
66     int flag = 0,f = 0;
67     for(int i = M+1;i<M+V;i++){
68         upt(i);
69         if(seg[i].color){
70             if(flag) ++r;
71             else r=l=i,flag=1;
72         }
73         else if(flag){
74             f = 1;
75             OP(l-M-1,r-M-1);
76             flag = 0;
77         }
78     }
79     if(!f) puts("empty set"); else
80     puts("");
81 }
82 
posted on 2012-05-07 20:21 西月弦 閱讀(1659) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告經典題目
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            免费日韩一区二区| 午夜一区二区三区不卡视频| 激情亚洲成人| 亚洲一区美女视频在线观看免费| 久久精品国产一区二区电影 | 亚洲巨乳在线| 久久亚洲欧美| 亚洲午夜视频| 91久久香蕉国产日韩欧美9色| 亚洲一区二区久久| 欧美午夜大胆人体| 亚洲一级高清| 在线视频中文亚洲| 欧美三级电影一区| 亚洲天堂网在线观看| 亚洲日本在线观看| 欧美日韩一二三区| 亚洲在线第一页| 亚洲在线1234| 国产一区二区高清不卡| 欧美一级成年大片在线观看| 亚洲一区二区三区免费观看| 国产精品一卡二| 久久成人一区| 久久婷婷综合激情| 91久久精品日日躁夜夜躁国产| 欧美国产三区| 欧美日韩国产综合视频在线观看 | 国产热re99久久6国产精品| 亚洲欧美www| 先锋影音久久| 亚洲第一二三四五区| 免费影视亚洲| 欧美日韩免费一区二区三区视频| 亚洲专区免费| 久久国产精品免费一区| 在线观看不卡av| 91久久久久久| 国产精品蜜臀在线观看| 久久精品观看| 欧美成人精品不卡视频在线观看| 国产精品99久久久久久久久久久久| 亚洲一卡二卡三卡四卡五卡| 一区在线免费观看| 亚洲黄页视频免费观看| 国产精品亚洲成人| 亚洲二区视频在线| 国产精品激情偷乱一区二区∴| 久久久之久亚州精品露出| 欧美成人第一页| 欧美在线一区二区三区| 免费欧美视频| 午夜亚洲性色视频| 蜜臀久久99精品久久久久久9 | 国产日韩欧美二区| 免费不卡视频| 欧美三级视频在线| 久久一区二区视频| 欧美日韩一区二区高清| 久久午夜视频| 国产精品videosex极品| 欧美激情中文字幕在线| 久久国产精品亚洲va麻豆| 亚洲国产高清高潮精品美女| 一区二区三区欧美激情| 亚洲人成网站777色婷婷| 亚洲免费在线| 在线视频精品| 你懂的亚洲视频| 久久久99久久精品女同性| 欧美日本韩国一区二区三区| 久久影院亚洲| 国产日韩av在线播放| 日韩一级片网址| 在线成人欧美| 久久精品日韩| 欧美一区二区观看视频| 久久久久国产精品厨房| 亚洲免费在线精品一区| 欧美国产视频一区二区| 久久久久成人精品| 国产精品日韩欧美一区| 欧美黑人在线观看| 韩国三级电影久久久久久| 亚洲一区二区三区高清| 99这里有精品| 欧美国产日韩一区二区三区| 免费观看国产成人| 好吊成人免视频| 国产精品99久久久久久久女警| 亚洲精品在线电影| 欧美大片一区二区| 老司机67194精品线观看| 国产日韩精品一区二区三区在线| 制服丝袜激情欧洲亚洲| 亚洲美女电影在线| 久久久亚洲午夜电影| 毛片基地黄久久久久久天堂| 一区二区亚洲精品| 久久久久久综合网天天| 久久综合婷婷| 亚洲国产日韩欧美综合久久| 麻豆精品精华液| 亚洲电影激情视频网站| 亚洲人成网站999久久久综合| 欧美成人免费在线观看| 亚洲精品美女91| 亚洲在线网站| 国产午夜精品一区二区三区视频| 欧美一级艳片视频免费观看| 久久久久久夜| 在线观看成人av| 欧美另类videos死尸| 亚洲最新中文字幕| 亚洲欧美一区二区激情| 国产一区二区三区在线观看网站| 久久久久久久高潮| 亚洲高清自拍| 亚洲视频精选在线| 国产乱码精品一区二区三区不卡| 久久精品九九| 亚洲国产另类精品专区| 亚洲免费伊人电影在线观看av| 国产农村妇女精品| 噜噜噜久久亚洲精品国产品小说| 亚洲精品视频免费在线观看| 午夜视频一区在线观看| 亚洲高清电影| 国产精品日韩欧美大师| 久久综合九色| 亚洲一区成人| 欧美激情精品久久久久久变态| 国产性天天综合网| 久久夜色精品国产噜噜av| 99视频精品| 裸体一区二区三区| 在线视频日韩精品| 韩国精品久久久999| 欧美日韩免费在线视频| 久久久99久久精品女同性| 99re6这里只有精品视频在线观看| 久久精品免费| 亚洲午夜在线观看| 亚洲国产成人tv| 国产欧美综合在线| 欧美金8天国| 久久久国产精品一区| 一区二区三区精品在线| 欧美激情亚洲视频| 久久久久久一区二区| 亚洲尤物影院| 一本色道久久综合亚洲精品按摩| 激情一区二区| 国产伦精品一区二区三区免费| 欧美精品日韩综合在线| 久久久.com| 午夜视频一区| 亚洲永久网站| 亚洲一区二区三区色| 亚洲靠逼com| 亚洲国产va精品久久久不卡综合| 久久国产精品72免费观看| 亚洲亚洲精品在线观看 | 在线中文字幕不卡| 亚洲激情专区| 亚洲高清在线精品| 影音欧美亚洲| 黄色亚洲免费| 国内精品久久久久影院薰衣草| 国产精品美女久久久久久2018 | 亚洲一区二区三区乱码aⅴ| 亚洲日韩视频| 亚洲精品美女在线| 亚洲欧洲精品一区二区精品久久久| 国产一区二区视频在线观看| 国产精品人人爽人人做我的可爱| 欧美精品国产一区| 欧美精品www| 欧美日韩另类一区| 欧美午夜免费影院| 国产精品免费福利| 国产欧美日本一区视频| 国产日韩视频一区二区三区| 国产嫩草影院久久久久| 国产精品久久91| 国产精品美腿一区在线看| 国产精品久久999| 国产精品亚洲欧美| 国产一级揄自揄精品视频| 国一区二区在线观看| 一区在线影院| 亚洲精品国产系列| 亚洲精品少妇| 亚洲主播在线播放| 欧美在线观看视频在线| 久久精品国产综合| 欧美成人午夜视频| 亚洲毛片在线观看| 亚洲综合色在线| 久久蜜桃精品|