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

Omni Inspirations

problems & programs ~

統計

留言簿

Friends

閱讀排行榜

評論排行榜

CroatianOI 2009 OTOCI

題意:
給定N個節點要求維護森林:
b x y表示查詢x y的連通性 如果連通輸出"no"否則輸出"yes"并在x,y之間連邊
p x y表示將x節點權值修改為y
e x y表示查詢x到y路徑上的權值和 如果連通輸出答案否則輸出"impossible"
N<=30000 Q<=300000

做法:
要在線么..動態樹搞搞吧

對于B
查詢兩個節點是否在同一棵動態樹中 其實便是拉實后看根節點是否一樣
如果不連通 那么將其中一個節點變成所在動態樹的根 然后接到另一個節點上去

對于P 沒什么好說的 別忘了update

對于E 也沒什么好說的 兩次拉實就可以了 找到LCA然后查詢


  1 #include <cstdio>
  2 struct Tsplay
  3 {
  4     #define Lch(t)    (T[t].l)
  5     #define Rch(t)    (T[t].r)
  6     #define Par(t)    (T[t].p)
  7     #define Sum(t)    (T[t].sum)
  8     #define Val(t)    (T[t].val)
  9     #define Rev(t)    (T[t].rev)
 10     #define Root(t)    (Lch(Par(t))!=t&&Rch(Par(t))!=t)
 11     int l,r,p;
 12     int sum,val;
 13     bool rev;
 14 }    T[30005];
 15 int Stk[30005],N,Q,x,y;
 16 char cmd[1005];
 17 inline void Down(int x)
 18 {
 19     if (Rev(x))
 20     {
 21         int t=Lch(x);Lch(x)=Rch(x);Rch(x)=t;
 22         Rev(Lch(x))^=1,Rev(Rch(x))^=1,Rev(x)=0;
 23     }
 24 }
 25 inline void Tupdate(int x)
 26 {
 27     Sum(x)=Sum(Lch(x))+Val(x)+Sum(Rch(x));
 28 }
 29 inline void zig(int x)
 30 {
 31     int y=Par(x),z=Par(y);
 32     Lch(y)=Rch(x),Par(Lch(y))=Rch(x)=y;
 33     if (Lch(z)==y)    Lch(z)=x;
 34     else
 35     if (Rch(z)==y)    Rch(z)=x;
 36     Par(x)=z,Par(y)=x;
 37     Tupdate(y);
 38 }
 39 inline void zag(int x)
 40 {
 41     int y=Par(x),z=Par(y);
 42     Rch(y)=Lch(x),Par(Rch(y))=Lch(x)=y;
 43     if (Lch(z)==y)    Lch(z)=x;
 44     else
 45     if (Rch(z)==y)    Rch(z)=x;
 46     Par(x)=z,Par(y)=x;
 47     Tupdate(y);
 48 }
 49 inline void splay(int x)
 50 {
 51     Stk[++Stk[0]]=x;
 52     for (int u=x;!Root(u);u=Par(u))
 53         Stk[++Stk[0]]=Par(u);
 54     for (;Stk[0];--Stk[0])
 55         Down(Stk[Stk[0]]);
 56     for (int y,z;!Root(x);)
 57     {
 58         y=Par(x),z=Par(y);
 59         if (Root(y))
 60             if (Lch(y)==x)    zig(x);
 61             else    zag(x);
 62         else
 63         if (Lch(z)==y)
 64             if (Lch(y)==x)    zig(y),zig(x);
 65             else    zag(x),zig(x);
 66         else
 67             if (Rch(y)==x)    zag(y),zag(x);
 68             else    zig(x),zag(x);
 69     }
 70     Tupdate(x);
 71 }
 72 inline int Expose(int u)
 73 {
 74     int v=0;
 75     for (;u;u=Par(u))
 76         splay(u),Rch(u)=v,Tupdate(v=u);
 77     for (;Lch(v);v=Lch(v));
 78     return v;
 79 }
 80 inline void Modify(int x,int y)
 81 {
 82     splay(x),Val(x)=y,Tupdate(x);
 83 }
 84 inline void Query(int x,int y)
 85 {
 86     int Ry=Expose(y),Rx=Expose(x);
 87     if (Rx!=Ry)    puts("impossible");
 88     else
 89     for (int u=y,v=0;u;u=Par(u))
 90     {
 91         if (splay(u),!Par(u))
 92         {
 93             printf("%d\n",Sum(Rch(u))+Val(u)+Sum(v));
 94             return;
 95         }
 96         Rch(u)=v,Tupdate(v=u);
 97     }
 98 }
 99 inline void Connect(int x,int y)
100 {
101     int Ry=Expose(y),Rx=Expose(x);
102     if (Rx==Ry)    puts("no");
103     else
104     {
105         splay(x);
106         Rch(x)=0,Rev(x)=1,Par(x)=y;
107         puts("yes");
108     }
109 }
110 int main()
111 {
112     freopen("otoci.in","r",stdin);
113     freopen("otoci.out","w",stdout);
114     scanf("%d",&N);
115     for (int i=1;i<=N;++i)
116         scanf("%d",&Val(i)),Sum(i)=Val(i);
117     for (scanf("%d",&Q);Q--;)
118     {
119         scanf("%s%d%d",cmd,&x,&y);
120         if (cmd[0]=='e')    Query(x,y);
121         else
122         if (cmd[0]=='b')    Connect(x,y);
123         else    Modify(x,y);
124     }
125     return 0;
126 }
127 
128 

posted on 2010-04-12 19:53 jsn1993 閱讀(459) 評論(0)  編輯 收藏 引用 所屬分類: Data Structures

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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性久久久久久| 性色av一区二区三区红粉影视| 亚洲一区日韩| 欧美在线观看www| 久久亚洲春色中文字幕久久久| 免费观看亚洲视频大全| 欧美激情一区二区三区在线视频 | 免费国产一区二区| 亚洲盗摄视频| 欧美国产综合视频| 亚洲麻豆国产自偷在线| 亚洲一区二区精品在线| 久久精品日韩一区二区三区| 欧美va亚洲va国产综合| 欧美日韩一区二区在线播放| 国产片一区二区| 亚洲激情偷拍| 亚洲免费婷婷| 欧美国产大片| 亚洲女女做受ⅹxx高潮| 老司机67194精品线观看| 欧美日韩免费区域视频在线观看| 国产免费观看久久| 亚洲精品免费网站| 久久精品在线视频| 日韩视频免费在线| 久久免费少妇高潮久久精品99| 欧美日韩亚洲三区| 在线电影欧美日韩一区二区私密| 中国日韩欧美久久久久久久久| 久久国产主播精品| 亚洲美女在线国产| 久久视频精品在线| 狂野欧美一区| 亚洲欧美国产精品专区久久| 久久精品视频在线| 日韩午夜激情| 欧美二区在线观看| 精品不卡一区| 欧美一区二区三区日韩视频| 最近中文字幕mv在线一区二区三区四区| 宅男噜噜噜66一区二区 | 久久精品国产欧美激情| 欧美日韩免费| 亚洲伦理在线观看| 牛人盗摄一区二区三区视频| 亚洲欧美另类在线观看| 欧美视频精品一区| 一本色道婷婷久久欧美| 欧美国产在线观看| 女同性一区二区三区人了人一| 国产在线精品自拍| 久久精品五月| 欧美一级网站| 国产一区二区三区成人欧美日韩在线观看 | 久久久久久亚洲精品杨幂换脸| 国产精品一卡| 香蕉国产精品偷在线观看不卡| 亚洲免费成人av电影| 欧美欧美全黄| 一区电影在线观看| 妖精视频成人观看www| 欧美日韩三区四区| 亚洲天堂网在线观看| 一区二区日韩免费看| 国产精品久久久久国产精品日日 | 一区二区三区亚洲| 久久亚洲视频| 玖玖精品视频| 亚洲精品影院在线观看| 亚洲激情网站免费观看| 欧美日本簧片| 亚洲欧美激情诱惑| 久久成人一区二区| 亚洲二区视频在线| 亚洲精品国产精品乱码不99按摩| 欧美激情精品久久久久久大尺度| 一本色道久久加勒比88综合| 一本久久综合亚洲鲁鲁| 国产精品亚洲成人| 久久免费精品视频| 欧美成人一区二区三区片免费| 日韩写真视频在线观看| 中文日韩电影网站| 激情欧美一区二区三区在线观看| 欧美国产精品人人做人人爱| 免费不卡欧美自拍视频| 在线中文字幕不卡| 国产精品美女| 久久久久久日产精品| 免费久久99精品国产| 日韩视频在线观看| 一区二区三区久久精品| 激情国产一区| 亚洲毛片在线免费观看| 国产综合色精品一区二区三区| 亚洲国产一区二区三区a毛片| 欧美午夜宅男影院| 欧美3dxxxxhd| 国产精品二区在线| 欧美成人一区二区| 国产日韩精品在线观看| 最新日韩在线视频| 国产一区二区黄| 99国产精品99久久久久久| 激情综合色综合久久综合| 一区二区三区国产在线观看| 亚洲国产成人精品久久久国产成人一区| 日韩视频精品在线| 91久久精品网| 久久久噜噜噜久久中文字免| 亚洲欧美制服另类日韩| 免费观看欧美在线视频的网站| 欧美在线视频日韩| 欧美午夜女人视频在线| 欧美激情视频一区二区三区在线播放 | 欧美在线视频一区| 亚洲影视在线| 欧美激情精品久久久久久变态| 久久久在线视频| 国产欧美日韩视频一区二区三区| 亚洲乱码国产乱码精品精可以看| **欧美日韩vr在线| 久久九九有精品国产23| 久久久久一本一区二区青青蜜月| 国产精品天天摸av网| 一区二区久久久久| 亚洲无限乱码一二三四麻| 欧美精品情趣视频| 亚洲青色在线| 99精品国产99久久久久久福利| 久久在线视频| 免费在线看成人av| 1024成人网色www| 老司机精品视频网站| 欧美不卡视频一区| 亚洲精品美女久久久久| 欧美激情五月| 亚洲精品久久久久久一区二区| 91久久极品少妇xxxxⅹ软件| 女人香蕉久久**毛片精品| 亚洲成色精品| 99xxxx成人网| 欧美午夜精品久久久久久超碰| 亚洲深夜福利在线| 欧美专区在线| 亚洲欧美色婷婷| 国产婷婷色一区二区三区| 欧美一级视频精品观看| 久久综合激情| 亚洲黄色成人网| 欧美日韩国产在线看| 亚洲一级免费视频| 久久女同互慰一区二区三区| 在线免费精品视频| 欧美片第1页综合| 国产精品99久久99久久久二8 | 亚洲美洲欧洲综合国产一区| 亚洲影视中文字幕| 国产真实乱偷精品视频免| 久久在线精品| 亚洲伦理在线免费看| 欧美一区永久视频免费观看| 国际精品欧美精品| 欧美国产精品劲爆| 亚洲欧美国产精品专区久久| 免费永久网站黄欧美| 一区二区高清视频| 国产一区av在线| 欧美久久久久免费| 性欧美办公室18xxxxhd| 亚洲高清在线观看一区| 性色av一区二区三区| 亚洲黑丝在线| 国产欧美日韩精品一区| 欧美激情第一页xxx| 新67194成人永久网站| 亚洲国产精品一区| 久久9热精品视频| 亚洲美女中文字幕| 国产网站欧美日韩免费精品在线观看 | 亚洲伦理在线| 久久尤物电影视频在线观看| 99视频在线精品国自产拍免费观看| 国产精品国产三级国产专区53| 久久久久网址| 亚洲欧美第一页| 亚洲欧洲一区二区天堂久久 | 国产性色一区二区| 欧美日韩美女| 欧美成人高清| 久久―日本道色综合久久| 中文精品一区二区三区 | 久久久久久黄| 亚洲欧美日本视频在线观看| 亚洲欧洲精品一区|