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

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>
            亚洲电影观看| 一区二区国产日产| 亚洲精品乱码久久久久久蜜桃91| 欧美视频在线观看 亚洲欧| 久久一区二区精品| 免费不卡在线观看| 久久大逼视频| 久久婷婷久久| 欧美精品一区二区蜜臀亚洲| 久久精品亚洲精品| 麻豆精品国产91久久久久久| 久久亚洲一区二区| 免播放器亚洲一区| 欧美日韩在线播放三区| 国产精品白丝黑袜喷水久久久| 国产精品视频1区| 国模精品娜娜一二三区| 日韩午夜精品视频| 一区二区三区日韩精品| 翔田千里一区二区| 农村妇女精品| 国产精品地址| 亚洲成人中文| 亚洲欧美日韩一区在线观看| 毛片基地黄久久久久久天堂| 伊人精品久久久久7777| 亚洲国产一区二区精品专区| 一本色道久久综合| 久久久久久成人| 欧美成人激情在线| 亚洲欧洲一区二区三区久久| 亚洲精品久久| 久久阴道视频| 国产精品制服诱惑| 亚洲美女一区| 欧美成人xxx| 欧美一级视频| 国产精品福利网站| 99国产精品私拍| 开心色5月久久精品| 一本色道久久88综合亚洲精品ⅰ| 久久综合一区二区| 国产亚洲人成网站在线观看| 亚洲中字黄色| 99热这里只有精品8| 欧美成人午夜剧场免费观看| 狠狠噜噜久久| 久久国产婷婷国产香蕉| 日韩视频三区| 欧美国产第一页| 一区二区三区在线观看国产| 亚洲自拍三区| 亚洲精品国精品久久99热| 久久久噜噜噜久久人人看| 国产一区二区按摩在线观看| 午夜精品福利一区二区三区av| 亚洲精品老司机| 欧美成人免费小视频| 伊人婷婷欧美激情| 久久综合九九| 久久久久久久国产| 国内免费精品永久在线视频| 久久精品视频在线| 欧美一区二区三区免费看| 国产女人水真多18毛片18精品视频| 一区二区欧美亚洲| 欧美电影免费网站| 欧美成人一二三| 99精品国产福利在线观看免费| 亚洲欧洲中文日韩久久av乱码| 欧美岛国激情| 亚洲视频在线一区观看| 亚洲欧洲一区二区天堂久久| 欧美国产日韩在线观看| 亚洲黄页视频免费观看| 欧美激情一区二区三区蜜桃视频| 欧美大片在线观看一区二区| 最新日韩av| 亚洲激情自拍| 欧美精品一区二区精品网| 亚洲毛片网站| 一区二区高清在线观看| 国产精品久久久91| 亚洲免费在线播放| 99亚洲伊人久久精品影院红桃| 欧美一区2区视频在线观看| 欧美日韩免费一区二区三区| 亚洲一区二区三区色| 亚洲男人的天堂在线| 国产一区清纯| 久久免费一区| 欧美国产另类| 中文精品一区二区三区| 亚洲欧美综合精品久久成人| 尤物yw午夜国产精品视频| 亚洲人成网站999久久久综合| 欧美三级电影一区| 久久精品国产99国产精品| 久久久999国产| 亚洲社区在线观看| 99爱精品视频| 国产欧美日韩综合| 美女主播一区| 欧美日韩理论| 欧美一区二区三区在线观看视频| 久久嫩草精品久久久久| 亚洲天堂网站在线观看视频| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美精品v国产精品v日韩精品 | 亚洲欧洲久久| 亚洲夜间福利| 亚洲精品乱码久久久久久久久| 午夜精品在线观看| 一本久久综合亚洲鲁鲁五月天| 欧美一区二区三区视频在线| 亚洲伦理在线免费看| 久久九九精品| 久久久久9999亚洲精品| 欧美日韩日本国产亚洲在线| 欧美激情va永久在线播放| 国产亚洲电影| 亚洲伊人久久综合| 中文精品一区二区三区| 欧美电影免费观看高清| 久久午夜影视| 国产在线成人| 亚洲欧美另类中文字幕| 亚洲欧美激情四射在线日 | 美玉足脚交一区二区三区图片| 欧美一区二区三区免费在线看| 欧美久久久久久久久久| 欧美岛国激情| 韩日午夜在线资源一区二区| 亚洲欧美综合另类中字| 亚洲一区二区欧美日韩| 欧美日韩精品福利| 亚洲精品久久久一区二区三区| 亚洲国产精品久久久久婷婷884| 久久精品二区| 蜜臀久久久99精品久久久久久 | 亚洲激情成人在线| 午夜影院日韩| 久久人人爽人人爽爽久久| 欧美一区二区在线免费播放| 欧美在线精品免播放器视频| 国产精品久久久久久久久久尿| 亚洲视频www| 欧美亚洲免费| 国产精品亚洲欧美| 香蕉国产精品偷在线观看不卡| 久久精品国产清高在天天线| 国产在线播放一区二区三区| 久久久精品网| 欧美激情在线观看| 一区二区三区你懂的| 国产精品久久久久久久久久久久久久| 中文国产一区| 久久精品一区二区三区四区 | 久久午夜羞羞影院免费观看| 国模 一区 二区 三区| 欧美在线视频导航| 亚洲电影免费观看高清| 日韩视频在线观看国产| 国产精品久久久久久妇女6080| 欧美在线网址| 亚洲欧洲精品一区二区| 性欧美大战久久久久久久久| 国产一区免费视频| 欧美伦理a级免费电影| 亚洲一区二区三区四区视频| 美女啪啪无遮挡免费久久网站| 亚洲免费久久| 国产亚洲成精品久久| 欧美精品一区三区| 性久久久久久久久久久久| 亚洲电影自拍| 久久九九久久九九| 亚洲老司机av| 国产精品综合久久久| 久久人人97超碰国产公开结果| 欧美激情第二页| 欧美一区二区私人影院日本 | 中文国产一区| 欧美成人资源网| 欧美专区亚洲专区| 日韩视频一区二区三区在线播放免费观看| 欧美三级在线播放| 另类图片综合电影| 亚洲一区二区三区四区视频| 欧美激情2020午夜免费观看| 欧美一区免费视频| 亚洲网站视频| 亚洲精品国产精品国自产观看浪潮| 国产欧美一级| 国产精品欧美精品| 欧美国产高潮xxxx1819| 欧美综合国产精品久久丁香| 亚洲日本黄色| 亚洲国产片色| 免费欧美日韩|