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

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

其實(shí)很不好意思的說(shuō),這道題我的方法肯定不大好,非常的慢,需400多ms
但是再怎么說(shuō)也是好不容易寫出來(lái)的
這道題的轉(zhuǎn)換方法很巧妙
要不是上網(wǎng)搜出來(lái)的,我肯定不敢相信這是用并查集做
主要是把區(qū)間化為單個(gè)數(shù)的想法來(lái)做
這一點(diǎn)的處理我是用cube stacking同樣的想法來(lái)做的
還有一點(diǎn),離散化,這是基本上資料對(duì)這題的所要求的一點(diǎn),這一點(diǎn)我不大懂
這一題確實(shí)有個(gè)很大的特點(diǎn),10億的數(shù)據(jù),只有5000個(gè)操作
離散化,還是要慢慢體會(huì)的
這是我的代碼,很長(zhǎng),很繁瑣
而且思路不是很清楚
因?yàn)檫吀倪呄胫龀鰜?lái)的

 1#include<iostream>
 2#include<string>
 3#include<map>
 4using namespace std;
 5typedef struct{
 6    int parent;
 7    //int rank;
 8    int on;//決定從根到該結(jié)點(diǎn)的1的個(gè)數(shù)是奇還是偶,奇則為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中,但是也有不同的情況,可能二者在同一個(gè)集合中
41                                        //可能二者也不在同一個(gè)集合中,如果在的話就好辦了,直接驗(yàn)證
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}
這是另外個(gè)代碼,還沒(méi)看懂
 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) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


歡迎光臨 我的白菜菜園

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

常用鏈接

留言簿(8)

隨筆分類

隨筆檔案

文章檔案

相冊(cè)

acmer

online judge

隊(duì)友

技術(shù)

朋友

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 亚洲一区二区三区在线| 欧美大秀在线观看| 极品少妇一区二区| 欧美一二三区精品| 99精品视频免费在线观看| 久久久久在线观看| 国产精品毛片一区二区三区| 亚洲国产影院| 亚洲欧洲免费视频| 久久www免费人成看片高清| 久久在线视频在线| 亚洲视频一区二区| 欧美国产日本| 精品1区2区3区4区| 久久精品国产视频| 亚洲一区二区三区乱码aⅴ| 欧美电影免费观看网站| 国内一区二区三区| 久久久久国色av免费观看性色| 日韩一区二区福利| 欧美精品一区二区在线播放| 亚洲成色www8888| 免费高清在线视频一区·| 欧美在线日韩在线| 国产婷婷一区二区| 久久综合国产精品| 国产三级欧美三级| 欧美中文在线视频| 亚洲欧美国产日韩天堂区| 国产精品久久久久久久久久免费| 一区二区日韩| 一区二区激情视频| 国产精品拍天天在线| 欧美一区二区在线免费播放| 午夜精品av| 国产日韩精品视频一区| 久久久久一区二区三区四区| 久久精品国产一区二区三| 韩日视频一区| 欧美国产日韩一二三区| 欧美www视频在线观看| 99在线|亚洲一区二区| 99re66热这里只有精品3直播 | 亚洲黄色av| 久久综合久久久久88| 久久精品欧美日韩| 亚洲国产乱码最新视频| 亚洲人午夜精品| 国产精品高潮呻吟久久av无限| 久久国产免费| 毛片一区二区三区| 一区二区三区av| 新片速递亚洲合集欧美合集| 在线精品亚洲一区二区| 亚洲精品一区久久久久久| 国产精品一区在线观看你懂的| 久久久夜夜夜| 欧美日韩国产电影| 久久精品一区二区国产| 欧美高清你懂得| 欧美伊人久久久久久久久影院| 久久精品亚洲国产奇米99| 日韩亚洲国产欧美| 欧美一级视频精品观看| 亚洲免费成人| 久久国产欧美精品| 国产精品99久久久久久久vr| 欧美在线视频日韩| 久久综合99re88久久爱| 国产精品久久久久久久久婷婷| 亚洲综合二区| 久久高清国产| 国产精品99久久久久久久久久久久| 午夜精品免费| 中文欧美在线视频| 欧美88av| 久久精品在线视频| 国产精品国产三级国产专播精品人| 美女视频黄 久久| 国产精品香蕉在线观看| 亚洲人在线视频| 亚洲福利视频免费观看| 亚洲国产成人av| 日韩午夜在线电影| 91久久精品国产91性色| 午夜性色一区二区三区免费视频| 欧美在线视频二区| 免费成人性网站| 久久久水蜜桃| 国产精品久久久亚洲一区| 亚洲电影一级黄| 一区二区亚洲精品| 欧美在线视频网站| 欧美专区在线| 国产美女高潮久久白浆| 99成人在线| 中国成人黄色视屏| 欧美精品啪啪| 亚洲精品久久| 99精品视频网| 欧美国产综合一区二区| 欧美国产激情| 亚洲精品视频在线播放| 欧美99久久| 亚洲国产一区二区三区青草影视 | 国产精品亚洲精品| 日韩午夜av| 亚洲婷婷免费| 欧美日韩一区二区免费在线观看 | 91久久夜色精品国产九色| 久久黄色级2电影| 久久精品论坛| 影院欧美亚洲| 久久精品一区蜜桃臀影院| 国产日韩欧美制服另类| 亚洲欧美日本国产专区一区| 一区免费观看视频| 欧美性大战xxxxx久久久| 欧美日韩免费一区| 久久综合99re88久久爱| 久久国产一区二区| 蜜桃av综合| 国产精品久久久一本精品| 国产精品久久久久国产精品日日 | 亚洲人成人99网站| 欧美国产日韩视频| 久久久久久久激情视频| 狠狠色2019综合网| 麻豆成人在线观看| 亚洲人成久久| 午夜欧美不卡精品aaaaa| 国产欧美综合在线| 另类专区欧美制服同性| 亚洲经典在线| 欧美伊人影院| 亚洲精品色婷婷福利天堂| 国产精品成人久久久久| 久久五月天婷婷| 亚洲图片欧洲图片av| 久久男人资源视频| aa级大片欧美| 玉米视频成人免费看| 欧美日韩亚洲在线| 久久久久久国产精品mv| 欧美a级理论片| 国产视频亚洲| 麻豆av一区二区三区| 亚洲手机成人高清视频| 午夜在线一区| 亚洲人久久久| 国产一区二区三区四区hd| 欧美激情欧美激情在线五月| 亚洲婷婷免费| 亚洲精品一品区二品区三品区| 久久久久久高潮国产精品视| 一本一本久久a久久精品综合麻豆| 国产亚洲激情| 国产精品爽爽ⅴa在线观看| 欧美美女日韩| 欧美高清视频免费观看| 久久久亚洲一区| 欧美在线视频日韩| 亚洲理论在线观看| 国产一区二区三区高清在线观看| 欧美日韩大片一区二区三区| 久久国产精品黑丝| 亚洲尤物在线| 一区二区三区日韩| 亚洲人成在线观看一区二区| 在线综合亚洲| 99av国产精品欲麻豆| 韩国欧美国产1区|