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

posts - 43,  comments - 9,  trackbacks - 0
08合肥網(wǎng)賽某題。
http://poj.org/problem?id=3697
題意是問在N個點的完全圖(N<=10,000)中刪掉M(M<=1,000,000)條邊后, 還有多少個點與頂點1連通(頂點編號從1開始).
暴力BFS+HASH+各種WS優(yōu)化的方法很多, 但是出題人原意應(yīng)該是O(M)的做法吧... 下面是我YY出來的O(M)的做法.

只考慮這M條待刪邊, 能得到什么信息呢? 可以先從點1入手. 掃一遍與1鄰接的點, 那么剩下沒被掃到的點肯定與1是連通的. 而被掃到的點是"有可能"與1不連通. 所以就把那些肯定與1連通的點做標(biāo)記. 從這些確定連通的點中任選一個u, 再掃描它的所有鄰接點. 這之后, 如果一個點一共被掃了2次, 那么它才"有可能"與1不連通, 其它少于2次的點肯定與1連通, 因為它或者與1連通, 或者與u連通, 而u是已知與1連通的. 這樣再拿出一個已經(jīng)確定連通的點, 掃描它的鄰接點, 把被掃過次數(shù)<3的又標(biāo)記為已連通......

經(jīng)過上面的YY, 算法基本上就出來了:
把已知肯定與1連通的點集稱為S, 剩下不確定的為T. 一開始, S中只有1這一個點, 其它點都在T中. 每個點有個計數(shù)器, 記錄自己被掃了多少次.
1) 從S中取出一個沒處理過的點, 把它標(biāo)記為已處理, 并遍歷它的所有鄰接點, 被遍歷到的點的計數(shù)器都+1.
2) T中所有"計數(shù)<S中已處理點個數(shù)"的, 都可以確定是連通的, 把它們從T中刪除, 加入S中.
3) 重復(fù)1), 直到S中所有點都處理完.
這時, S中的點就是與1連通的, T中剩下的就是不連通的.

復(fù)雜度分析:
讀入邊和掃描邊都是O(M)的.
S集可以用隊列維護, 總共O(N).
T集的維護: 每一輪都要掃一遍當(dāng)前的T, 把所有計數(shù)小的刪掉, 放進S中. 這樣, 這一步的總復(fù)雜度就是O(sigma(T)), 會不會到達O(N^2)呢? 實際上是不會的. 因為一條邊最多只會使一個頂點的計數(shù)+1, 因此每一輪還剩在T中的點數(shù)不會超過這一輪遍歷過的邊數(shù). 這樣, 所有回合的sigma(T)就肯定不會超過總邊數(shù). 因此這里總共也是O(M)的. 嚴(yán)格來說算上第1輪有N-1個點, 也是O(M+N).
這樣總的復(fù)雜度就是O(M)了.

不過這個算法讀入用scanf時, g++跑了1000+ms, 改成getchar才到200+ms的. 不知道排前面的神們是不是有更NB的算法.

代碼:
 1 #include 
 2 #include 
 3 #include 
 4 #include 
 5 #include 
 6 using namespace std;
 7 
 8 const int MAXN = 10010;
 9 const int MAXM = 1000010;
10 
11 struct Edge {
12     int v, next;
13 }edg[MAXM*2];
14 int ecnt, gg[MAXN];
15 bool yes[MAXN];
16 int que[MAXN], pq, sq, cnt[MAXN], vt[MAXN], nt;
17 int N, M;
18 
19 inline int getnextint()
20 {
21     int r = 0;
22     char c;
23     while(!isdigit(c=getchar())); 
24     do{
25         r = r*10 + c-'0';
26     } while(isdigit(c=getchar()));
27     return r;
28 }
29 
30 inline void addedge(int u , int v)
31 {
32     edg[ecnt].v = v; edg[ecnt].next = gg[u], gg[u] = ecnt++;
33     edg[ecnt].v = u; edg[ecnt].next = gg[v], gg[v] = ecnt++;
34 }
35 
36 int main()
37 {
38     int cas = 0;
39     while(~scanf("%d%d"&N, &M) && !(N==0 && M==0)){
40         
41         ecnt = 0;
42         for(int i = 0; i < N; i++){
43             gg[i] = -1;
44             yes[i] = i==0 ? true : false;
45             cnt[i] = 0;
46             vt[i] = i+1;
47         }
48         nt = N-1;
49         
50         for(int i = 0; i < M; i++){
51             int u = getnextint();
52             int v = getnextint();
53             addedge(--u, --v);
54         }
55         
56         pq = sq = 0;
57         que[sq++= 0;
58         yes[0= true;
59         
60         while(pq != sq) {
61             int u = que[pq++];
62             for(int e = gg[u]; e >= 0; e = edg[e].next) {
63                 if(!yes[edg[e].v])
64                     cnt[edg[e].v]++;
65             }
66             for(int i = 0; i < nt; i++) {
67                 while(i < nt && cnt[vt[i]] < pq) {
68                     yes[vt[i]] = true;
69                     que[sq++= vt[i];
70                     if(i < --nt) 
71                         vt[i] = vt[nt];
72                 }
73             }
74         }
75         printf("Case %d: %d\n"++cas, sq-1);
76         
77     }
78     return 0;
79 }
posted on 2011-08-15 03:06 wolf5x 閱讀(422) 評論(0)  編輯 收藏 引用 所屬分類: acm_icpc
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

"Do not spend all your time on training or studying - this way you will probably become very exhausted and unwilling to compete more. Whatever you do - have fun. Once you find programming is no fun anymore – drop it. Play soccer, find a girlfriend, study something not related to programming, just live a life - programming contests are only programming contests, and nothing more. Don't let them become your life - for your life is much more interesting and colorful." -- Petr

留言簿(3)

隨筆分類(59)

隨筆檔案(43)

cows

搜索

  •  

最新評論

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲视频欧美在线| 国产伦精品一区二区三区四区免费 | 久久躁日日躁aaaaxxxx| 久久久国产一区二区三区| 欧美专区中文字幕| 久久久久久网址| 久久综合中文字幕| 欧美激情精品| aa级大片欧美三级| 性久久久久久| 免费亚洲电影在线| 国产精品高精视频免费| 国内精品久久久久国产盗摄免费观看完整版| 国产一区二区三区日韩| 亚洲欧洲精品一区二区精品久久久| 亚洲精品亚洲人成人网| 亚洲一区激情| 麻豆免费精品视频| 一本在线高清不卡dvd| 欧美一激情一区二区三区| 欧美 日韩 国产 一区| 国产精品久久中文| 亚洲电影在线| 欧美亚洲三区| 91久久国产综合久久91精品网站| 国内欧美视频一区二区| 久久国产天堂福利天堂| 欧美伦理在线观看| 国产午夜精品福利| 在线综合欧美| 亚洲国产精品欧美一二99| 国产精品99久久久久久久女警| 久久精品综合一区| 欧美日韩在线看| 在线观看视频一区二区| 性色av一区二区三区在线观看 | 亚洲国产高清视频| 亚洲综合精品自拍| 91久久国产综合久久蜜月精品 | 亚洲一级黄色片| 美腿丝袜亚洲色图| 国产亚洲一级| 午夜精品国产更新| 99精品欧美一区二区三区综合在线| 久久九九国产精品怡红院| 国产精品豆花视频| 一区二区91| 亚洲国产成人久久| 老鸭窝91久久精品色噜噜导演| 国产日韩一区二区三区在线播放| 一区二区欧美精品| 日韩一级大片| 欧美性大战久久久久久久蜜臀| 亚洲精品久久久久久久久久久久久 | 99人久久精品视频最新地址| 久久久欧美精品sm网站| 亚洲欧美日韩精品久久久| 欧美日韩蜜桃| 一本久道久久综合中文字幕| 免费亚洲电影在线| 久久不见久久见免费视频1| 国产嫩草影院久久久久| 欧美影院在线播放| 午夜欧美大尺度福利影院在线看| 国产女优一区| 久久精品论坛| 欧美在线看片| 亚洲高清av在线| 亚洲国产精品久久人人爱蜜臀| 欧美国产高清| 一区二区三区视频观看| 亚洲天堂av电影| 午夜日韩av| 欧美一区2区三区4区公司二百| 国产日本欧美一区二区| 久久精品一区二区国产| 久久久91精品国产一区二区精品| 在线不卡免费欧美| 亚洲国产91精品在线观看| 欧美国产精品专区| 亚洲午夜视频在线观看| 午夜精品久久久久久久久久久久久| 国产一区二区电影在线观看| 欧美xxx在线观看| 欧美国产精品v| 亚洲自拍16p| 久久久久久999| 一区二区三区产品免费精品久久75 | 亚洲国产精品成人综合色在线婷婷| 欧美激情在线播放| 国产精品扒开腿做爽爽爽软件| 久久精品国产亚洲精品| 麻豆精品精品国产自在97香蕉| 亚洲午夜国产成人av电影男同| 欧美一区二区在线看| 亚洲日本国产| 亚洲欧美日韩久久精品| 亚洲国产女人aaa毛片在线| 一本久道久久综合狠狠爱| 国产综合亚洲精品一区二| 亚洲区在线播放| 国产欧美一二三区| 亚洲黄网站在线观看| 国产一区91| 一本一本大道香蕉久在线精品| 亚洲第一精品福利| 亚洲欧美视频一区二区三区| 日韩亚洲欧美高清| 久久深夜福利| 久久久精品国产免大香伊| 欧美日韩在线大尺度| 欧美激情一区二区久久久| 国产日韩欧美中文| 99re6这里只有精品视频在线观看| 一区在线电影| 午夜在线一区| 亚洲免费在线播放| 欧美紧缚bdsm在线视频| 久久综合久久久久88| 国产精品久久久久久久久动漫| 亚洲国产一区二区在线| 国产综合久久久久久| 亚洲一区二区欧美| 亚洲午夜性刺激影院| 欧美激情女人20p| 欧美国产综合一区二区| 海角社区69精品视频| 欧美一区2区视频在线观看| 亚洲欧美日韩精品久久久久| 欧美另类视频在线| 亚洲国产视频直播| 亚洲人成在线影院| 欧美大片第1页| 亚洲色图自拍| 亚洲六月丁香色婷婷综合久久| 91久久国产精品91久久性色| 久久精品欧洲| 久久亚洲综合色| 禁断一区二区三区在线| 久久精品国产精品亚洲| 久久久夜精品| 在线精品国产欧美| 久久理论片午夜琪琪电影网| 免费不卡中文字幕视频| 亚洲国产成人精品久久久国产成人一区 | 久久中文字幕一区| 欧美mv日韩mv国产网站| 亚洲黄色在线观看| 欧美大香线蕉线伊人久久国产精品| 欧美成va人片在线观看| 亚洲日本电影在线| 欧美日韩在线视频一区二区| 国产精品99久久久久久白浆小说| 欧美亚洲视频在线看网址| 一区二区三区在线视频播放 | 米奇777超碰欧美日韩亚洲| 欧美高清在线| 一本一本a久久| 国产精品一区二区三区观看| 欧美一级在线亚洲天堂| 欧美成人免费播放| 亚洲午夜视频在线| 国产一区在线免费观看| 可以免费看不卡的av网站| 亚洲精品自在久久| 久久精品国产综合精品| 亚洲裸体在线观看| 国产精品久久国产精品99gif | 欧美手机在线视频| 欧美在线观看视频| 亚洲欧洲免费视频| 欧美在线视屏| 亚洲精品一二区| 国产精品视频免费观看| 开心色5月久久精品| 亚洲性人人天天夜夜摸| 蜜臀久久99精品久久久久久9| 一区二区三区四区五区精品视频 | 久久中文精品| 亚洲欧美日韩国产中文| 亚洲成色精品| 久久精品免费| 亚洲一区黄色| 亚洲精品一区二区三区四区高清| 国产欧美日韩伦理| 欧美日产国产成人免费图片| 久久精品国产99国产精品澳门| 亚洲精品乱码久久久久久蜜桃91 | 激情成人在线视频| 国产精品久久国产精品99gif| 麻豆国产精品va在线观看不卡| 亚洲一级高清| 日韩西西人体444www| 能在线观看的日韩av| 亚洲一区二区精品| 日韩一级在线观看| 在线观看亚洲一区| 国产性色一区二区| 国产精品免费在线| 国产精品扒开腿做爽爽爽视频|