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

我叫張小黑
張小黑的掙扎生活
posts - 66,  comments - 109,  trackbacks - 0

其實很不好意思的說,這道題我的方法肯定不大好,非常的慢,需400多ms
但是再怎么說也是好不容易寫出來的
這道題的轉換方法很巧妙
要不是上網搜出來的,我肯定不敢相信這是用并查集做
主要是把區間化為單個數的想法來做
這一點的處理我是用cube stacking同樣的想法來做的
還有一點,離散化,這是基本上資料對這題的所要求的一點,這一點我不大懂
這一題確實有個很大的特點,10億的數據,只有5000個操作
離散化,還是要慢慢體會的
這是我的代碼,很長,很繁瑣
而且思路不是很清楚
因為邊改邊想著做出來的

 1#include<iostream>
 2#include<string>
 3#include<map>
 4using namespace std;
 5typedef struct{
 6    int parent;
 7    //int rank;
 8    int on;//決定從根到該結點的1的個數是奇還是偶,奇則為1,偶為0
 9}NODE;
10typedef map<int,NODE> Mate;
11typedef Mate::value_type value_type;
12Mate Map;
13int find_set(int x)
14{
15    int t=Map[x].parent;
16    if(Map[x].parent!=x){
17        Map[x].parent=find_set(Map[x].parent);
18        Map[x].on=(Map[x].on+Map[t].on)%2;
19    }
20    return Map[x].parent;
21}
22void union_set(int x,int y,int c)
23{
24    Map[y].parent=x;
25    Map[y].on=c;
26}
27int main()
28{
29    NODE *t;
30    Mate::iterator xt,yt;
31    int i,n,qus,x,y,ct,xp,yp,k;//xp表示x-1的祖先,yp表示y的祖先
32    string condi;
33    scanf("%d%d",&n,&qus);
34    for(i=1;i<=qus;i++){
35        cin>>x>>y>>condi;
36        if(condi=="even")ct=0;
37        else if(condi=="odd")ct=1;
38        xt=Map.find(x-1);
39        yt=Map.find(y);
40        if(xt!=Map.end()&&yt!=Map.end()){//x-1,y都存在于Map中,但是也有不同的情況,可能二者在同一個集合中
41                                        //可能二者也不在同一個集合中,如果在的話就好辦了,直接驗證
42                                        //如果不則要合并
43            xp=find_set(x-1);//find 一次 就更新了x-1到根的路徑上的on值
44            yp=find_set(y);//同上
45            if(xp==yp){
46                if((Map[y].on+Map[x-1].on)%2!=ct){
47                printf("%d\n",i-1);
48                break;}}
49            k=(Map[x-1].on+ct+Map[y].on)%2;
50            if(xp<yp)union_set(xp,yp,k);
51            else union_set(yp,xp,k);
52        }
53        else if(xt!=Map.end()&&yt==Map.end()){//x-1在Map中,而y不在
54            t=(NODE*)malloc(sizeof(NODE));
55            Map.insert(value_type(y,*t));
56            union_set(x-1,y,ct);
57        }
58        else if(xt==Map.end()&&yt!=Map.end()){//x-1不在Map中,而y在
59            yp=find_set(y);
60            t=(NODE*)malloc(sizeof(NODE));
61            Map.insert(value_type(x-1,*t));
62            union_set(yp,x-1,(ct+Map[y].on)%2);
63        }
64        else if(xt==Map.end()&&yt==Map.end()){//x-1和y都不在Map中
65            t=(NODE*)malloc(sizeof(NODE));
66            t->on=0;
67            t->parent=x-1;
68            Map.insert(value_type(x-1,*t));
69            t=(NODE*)malloc(sizeof(NODE));
70            Map.insert(value_type(y,*t));
71            union_set(x-1,y,ct);
72        }
73    }
74    if(i>qus)printf("%d\n",i-1);
75    return 0;
76}
這是另外個代碼,還沒看懂
 1#include <stdio.h>
 2#include <map>
 3using namespace std;
 4
 5#define N 5001
 6int        x[N],    y[N], parent[N+N];
 7bool    odd[N],    parity[N+N];
 8
 9void swap( int &a, int &b) {
10    int tmp=a; a=b; b=tmp;
11}
12
13map<int,int> mmp;
14
15void unionab( int a, int b, bool e) {
16    parent[a]=b;
17    parity[a]=e;
18}
19
20int findx( int x, bool &e) {
21    int r=x;
22    bool res=parity[x];
23    while( parent[r]!=r) {
24        r=parent[r];
25        res ^=parity[r];
26    }
27    e=res;
28    return r;
29}
30
31bool check( int id) {
32    int a=x[id], b=y[id];
33    bool e=odd[id], ea, eb;
34    int ra=findx(a, ea), rb=findx(b, eb);
35    if( ra==rb) {
36        if( ea^eb!=e)
37            return false;
38    }
39    else 
40        unionab( ra, rb, ea^eb^e);
41    return true;
42}
43
44int main() {
45    int n, i, tmp, a,b, idx;
46    char s[7];
47    scanf("%d%d"&tmp, &n);
48    for( i=1,idx=1; i<=n; i++) {
49        scanf("%d%d%s"&a,&b,s);
50        if(a>b) swap(a,b);
51        --a;
52        if(a<0) {    
53            printf("1\n");
54            return 0;
55        }
56        if( !mmp.count(a))    mmp[a]=idx++;
57        if( !mmp.count(b))    mmp[b]=idx++;
58        x[i]=mmp[a];    y[i]=mmp[b];
59        odd[i]=(s[0]=='o');
60    }
61    for( i=1; i<=idx; i++) {
62        parent[i]=i;  parity[i]=false;
63    }
64    for( i=1; i<=n; i++) {
65        if( !check(i) )
66            break;
67    }
68    printf("%d\n", i-1);
69    return 0;
70}
71
http://acm.pku.edu.cn/JudgeOnline/problem?id=1733
posted on 2008-01-27 22:26 zoyi 閱讀(262) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


歡迎光臨 我的白菜菜園

<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用鏈接

留言簿(8)

隨筆分類

隨筆檔案

文章檔案

相冊

acmer

online judge

隊友

技術

朋友

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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在线| 亚洲精品日韩一| 中文有码久久| 久久九九精品| 亚洲人成网在线播放| 在线亚洲欧美| 久久这里有精品15一区二区三区| 欧美人成免费网站| 国产日韩av一区二区| 亚洲国产精品视频一区| 亚洲愉拍自拍另类高清精品| 久久综合色一综合色88| 99精品热视频| 久久中文精品| 国产欧美日本| 在线视频日韩精品| 欧美成人一区二区三区在线观看| 中日韩视频在线观看| 久久综合色8888| 国产精品videosex极品| 亚洲第一精品夜夜躁人人躁| 午夜精品国产精品大乳美女| 免费久久99精品国产自| 一区二区三区高清不卡| 噜噜噜躁狠狠躁狠狠精品视频| 欧美日本一区| 亚洲国产精品一区二区www| 亚洲男同1069视频| 欧美高清视频| 午夜精品久久久久久久久久久| 男女精品视频| 黑人巨大精品欧美一区二区| 一区二区福利| 亚洲国产成人91精品| 久久精品噜噜噜成人av农村| 国产精品试看| 亚洲一级黄色| 亚洲免费成人av电影| 噜噜噜在线观看免费视频日韩| 国产在线精品二区| 欧美一区三区二区在线观看| 99成人精品| 欧美激情二区三区| 亚洲激情女人| 欧美激情第三页| 久久精品国产一区二区三| 国产欧美日韩91| 久久精品国产亚洲一区二区三区| 亚洲一品av免费观看| 欧美特黄一级大片| 亚洲男人第一av网站| 亚洲无线视频| 国产情人节一区| 欧美一区二区三区免费大片| 亚洲午夜精品| 国产日产亚洲精品| 久久久人人人| 麻豆精品在线观看| 亚洲欧洲一区二区天堂久久| 亚洲激情第一区| 欧美成人午夜剧场免费观看| 日韩视频永久免费观看| 亚洲美女av在线播放| 国产精品高清一区二区三区| 午夜在线一区二区| 久久久久久久999精品视频| 在线欧美日韩| 亚洲国产一二三| 国产精品a久久久久| 欧美在线视频播放| 免费不卡在线观看av| 亚洲网站在线播放| 欧美一区二区三区成人| 91久久亚洲| 亚洲综合国产| 亚洲国产精品女人久久久| 日韩一区二区久久| 国产亚洲a∨片在线观看| 男女激情视频一区| 欧美午夜欧美| 蜜桃伊人久久| 欧美特黄一级大片| 久色婷婷小香蕉久久| 欧美精品偷拍| 久久免费视频这里只有精品| 欧美福利视频| 性欧美videos另类喷潮| 老司机精品导航| 午夜精品久久久久久久99樱桃| 久久久国际精品| 一本色道久久综合一区| 国产字幕视频一区二区| 亚洲伦理在线观看| 在线播放豆国产99亚洲| 一本色道久久综合精品竹菊| 亚洲成人在线视频播放| 亚洲一区二区三区涩| 亚洲精品一区二区三区福利| 欧美在线黄色| 亚洲欧美综合| 欧美日韩国产在线看| 欧美大尺度在线观看| 国产日韩一区二区| 亚洲作爱视频| 亚洲人成人一区二区在线观看| 欧美一区二区国产| 亚洲欧美中文另类| 欧美日韩一区二区三区在线| 欧美大片在线观看| 黄色在线一区| 欧美中文在线免费| 欧美中文在线观看国产| 国产精品久久久久毛片大屁完整版 | 久久久精品国产免大香伊 | 亚洲国产成人porn| 黄色小说综合网站| 午夜一级在线看亚洲| 亚洲一区影音先锋| 欧美日韩一区二区视频在线观看| 欧美jizz19hd性欧美| 国内视频精品| 欧美亚洲一区三区| 欧美一区二区三区精品| 国产精品激情| 亚洲一区二区三区精品在线| 亚洲一区图片| 国产精品久久婷婷六月丁香| 一区二区欧美在线观看| 亚洲私拍自拍| 欧美视频在线观看一区二区| 亚洲免费黄色| 亚洲一区二区三区久久| 欧美日韩一区在线| 亚洲一区二区视频在线观看| 欧美亚洲一区二区在线| 国产一区二区三区av电影 | 一本色道久久99精品综合| 欧美高清在线视频| 亚洲精品激情| 亚洲欧美日韩精品在线| 国产嫩草影院久久久久 | 久久中文久久字幕| 久久亚洲捆绑美女| 欧美高清视频在线播放| 亚洲精品欧美日韩专区| 欧美另类69精品久久久久9999| 亚洲精品自在久久| 亚洲欧美日韩精品久久| 国产日韩综合| 久久综合伊人77777蜜臀| 国内精品美女av在线播放| 久久久国产精彩视频美女艺术照福利| 久久久久青草大香线综合精品| 永久久久久久| 欧美另类综合| 亚洲欧美国产视频| 欧美国产日韩一二三区| 一区二区三区不卡视频在线观看| 国产精品久久久久毛片大屁完整版 | 亚洲福利视频在线| 亚洲一区免费网站| 国内精品国语自产拍在线观看| 欧美成人蜜桃| 亚洲欧美激情在线视频| 国产一区二区三区免费观看| 久久亚洲私人国产精品va媚药 | 99精品国产热久久91蜜凸| 久久福利影视| 夜夜嗨av一区二区三区网站四季av | 午夜精品福利在线| 亚洲国产专区校园欧美| 国产精品护士白丝一区av| 欧美中文字幕在线视频| 夜夜精品视频一区二区| 免费亚洲电影在线| 午夜国产精品视频免费体验区| 在线观看成人网| 国产精品综合色区在线观看| 欧美www视频| 午夜日本精品| 亚洲精品视频一区二区三区| 麻豆精品在线观看| 久久精品亚洲一区| 亚洲性视频网站| 最新国产の精品合集bt伙计| 国产一区二区三区在线播放免费观看 | 中国成人在线视频| 亚洲福利视频三区| 久久精品国产一区二区三区| 在线视频精品一区|