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

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

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

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

復雜度分析:
讀入邊和掃描邊都是O(M)的.
S集可以用隊列維護, 總共O(N).
T集的維護: 每一輪都要掃一遍當前的T, 把所有計數小的刪掉, 放進S中. 這樣, 這一步的總復雜度就是O(sigma(T)), 會不會到達O(N^2)呢? 實際上是不會的. 因為一條邊最多只會使一個頂點的計數+1, 因此每一輪還剩在T中的點數不會超過這一輪遍歷過的邊數. 這樣, 所有回合的sigma(T)就肯定不會超過總邊數. 因此這里總共也是O(M)的. 嚴格來說算上第1輪有N-1個點, 也是O(M+N).
這樣總的復雜度就是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 閱讀(423) 評論(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>
            99精品国产热久久91蜜凸| 欧美深夜影院| 一本久久知道综合久久| 久久综合久久综合这里只有精品| 性欧美激情精品| 国产精品久久久久久超碰| 日韩一区二区精品葵司在线| 99视频精品全部免费在线| 欧美精品一区在线| 日韩视频精品在线观看| 亚洲视频www| 国产精品国产自产拍高清av王其| 99热精品在线| 香蕉久久夜色精品| 国产日韩欧美一区在线| 欧美一区三区三区高中清蜜桃| 久久精品夜色噜噜亚洲a∨| 国产亚洲视频在线| 久久爱www久久做| 久久综合影视| 亚洲国产日韩在线| 欧美精品1区2区3区| av不卡在线看| 亚洲综合欧美日韩| 国产精品视频免费在线观看| 性欧美xxxx视频在线观看| 黑人巨大精品欧美一区二区小视频 | 欧美专区在线| 欧美视频在线观看一区| 亚洲精品久久| 亚洲精品欧美极品| 欧美国产精品va在线观看| 亚洲二区视频| 亚洲精品久久久久| 免费观看日韩| 亚洲国产精品一区在线观看不卡 | 久久国产黑丝| 激情国产一区二区| 另类人畜视频在线| 亚洲国产精品成人综合色在线婷婷| 国产伦精品一区二区三区视频黑人| 欧美国产另类| 亚洲欧美另类中文字幕| 国产精品丝袜白浆摸在线| 亚洲欧美影院| 久久一日本道色综合久久| 在线日本欧美| 欧美精品观看| 亚洲综合色自拍一区| 久久精品视频在线播放| 激情成人av| 欧美精品在线网站| 亚洲网站视频| 久久免费精品视频| 亚洲精品一区二区三区不| 欧美亚州一区二区三区| 亚洲欧洲一级| 欧美影院午夜播放| 日韩视频一区二区| 性欧美1819性猛交| 在线看一区二区| 欧美另类videos死尸| 亚洲一二三四久久| 美国十次成人| 亚洲四色影视在线观看| 国产日韩欧美一区在线| 欧美一区二区三区在线观看视频 | 欧美精品一区二区三区在线播放| 宅男精品视频| 久久综合久色欧美综合狠狠| 亚洲精品日产精品乱码不卡| 国产精品国产a级| 久久久久久亚洲精品杨幂换脸 | 亚洲综合视频1区| 在线精品观看| 国产精品久久久久久久久久久久久| 久久精品青青大伊人av| 亚洲精品综合精品自拍| 欧美自拍丝袜亚洲| 日韩一区二区免费高清| 国产亚洲精品v| 欧美精品一区二区三区蜜臀| 欧美一区二区三区电影在线观看| 亚洲国产成人高清精品| 欧美一区二区日韩| 夜夜爽www精品| 国产精品电影在线观看| 亚洲欧美一区二区原创| 亚洲精品老司机| 女女同性精品视频| 久久精品国产第一区二区三区最新章节| 亚洲精品视频一区二区三区| 红桃视频成人| 国产日韩欧美一区二区| 欧美少妇一区二区| 欧美成年人网站| 久久久精品日韩欧美| 午夜精品福利一区二区蜜股av| 亚洲精品视频在线播放| 欧美成人精品1314www| 久久久精品免费视频| 午夜在线一区二区| 亚洲一级一区| 99国产精品视频免费观看| 亚洲国产精品久久久久婷婷老年| 国产主播一区二区三区四区| 欧美成人午夜激情| 亚洲午夜电影在线观看| 欧美韩日高清| 久久中文久久字幕| 久久精品日产第一区二区| 欧美亚洲视频| 亚洲欧美日韩精品综合在线观看| 亚洲免费观看高清完整版在线观看| 狠狠爱www人成狠狠爱综合网| 国产精品亚洲不卡a| 国产精品免费区二区三区观看| 欧美三区在线观看| 国产精品超碰97尤物18| 国产精品成人在线| 国产精品视频yy9299一区| 国产精品免费看| 国产伦精品一区二区三区四区免费| 国产精品护士白丝一区av| 国产精品欧美日韩一区二区| 国产精品一区视频| 国模一区二区三区| 在线精品视频在线观看高清| 一区二区三区在线免费视频| 欧美国产视频日韩| 欧美视频一区二区三区| 国产精品分类| 欧美日韩精品免费观看视频完整| 国产精品亚洲片夜色在线| 国产性色一区二区| 伊人蜜桃色噜噜激情综合| 1000部国产精品成人观看| 亚洲第一精品夜夜躁人人躁 | 夜夜夜精品看看| 亚洲一区二区三区国产| 亚洲人成网站影音先锋播放| 久久精品在线播放| 亚洲性图久久| 欧美与欧洲交xxxx免费观看| 久久久精品动漫| 欧美成人精品h版在线观看| 欧美激情一区二区三区四区| 91久久在线观看| 亚洲色图自拍| 久久精品在线观看| 欧美国产精品v| 国产精品无码永久免费888| 精品av久久久久电影| 亚洲精品一区二区三区不| 亚洲欧美日韩国产成人精品影院| 久久av在线看| 亚洲电影免费观看高清完整版在线观看| 91久久中文字幕| 亚洲欧美日韩国产一区二区| 亚洲调教视频在线观看| 久久精品国产一区二区三区| 欧美连裤袜在线视频| 国产区在线观看成人精品| 亚洲国产精品成人综合色在线婷婷| 狠狠色综合日日| 最新国产乱人伦偷精品免费网站| 久久9热精品视频| 亚洲人成久久| 欧美制服丝袜| 欧美日韩国产页| 一区二区亚洲精品国产| 亚洲午夜激情在线| 免费成人av在线| 亚洲一区二区在线免费观看视频| 久久亚洲私人国产精品va媚药| 欧美日韩一区二区国产| 激情亚洲网站| 亚洲欧美国产日韩天堂区| 欧美jjzz| 中国成人亚色综合网站| 欧美日韩视频一区二区三区| 韩国一区电影| 亚洲欧美日韩国产成人| 亚洲电影欧美电影有声小说| 午夜免费日韩视频| 欧美日韩福利| 在线视频国内自拍亚洲视频| 亚洲欧美激情视频| 欧美国产第一页| 欧美一区二区三区四区高清| 欧美日韩一区高清| 亚洲人成7777| 美女诱惑一区| 欧美一区免费视频| 免费观看欧美在线视频的网站| 亚洲成人直播| 久久久久久久一区二区| 亚洲伊人网站| 欧美四级电影网站| 亚洲美女中出|