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

我叫張小黑
張小黑的掙扎生活
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>
            国产一区二区看久久| 欧美激情精品久久久久| 1024欧美极品| 欧美激情第五页| 久热爱精品视频线路一| 99精品免费网| 狂野欧美一区| 亚洲欧美另类国产| 亚洲黄色在线观看| 国产午夜精品久久久| 欧美日本在线看| 亚洲三级电影全部在线观看高清| 欧美成人综合网站| 欧美一级视频精品观看| 亚洲毛片一区| 亚洲黄色成人久久久| 久久久亚洲综合| 欧美影院一区| 欧美专区亚洲专区| 亚洲欧美一区二区精品久久久| 亚洲精品美女在线| 在线播放中文字幕一区| 国产午夜精品视频免费不卡69堂| 亚洲国产一区二区三区a毛片 | 老牛嫩草一区二区三区日本| 久久精品卡一| 亚洲乱码久久| 亚洲福利视频在线| 国产欧美一区二区三区国产幕精品| 欧美日韩国产成人在线91| 国产精品萝li| 国产精品亚洲а∨天堂免在线| 欧美私人网站| 国产精品精品视频| 欧美手机在线视频| 伊人激情综合| 午夜一区在线| 久久亚洲视频| 欧美成人一区在线| 亚洲精品久久久久久下一站 | 亚洲免费在线看| 欧美国产日韩一二三区| 亚洲国产精品免费| 欧美中文字幕第一页| 先锋资源久久| 亚洲欧美激情四射在线日| 亚洲一区二区在| 久久狠狠婷婷| 欧美电影打屁股sp| 精品成人国产在线观看男人呻吟| 在线高清一区| 久久久噜噜噜久久人人看| 亚洲在线免费| 国产精品二区在线观看| 日韩亚洲精品视频| 亚洲欧美成人| 一区二区高清在线观看| 久久精品国产第一区二区三区最新章节 | 亚洲先锋成人| 久久久欧美一区二区| 免费成人美女女| 国产精品播放| 在线精品视频免费观看| 欧美伊人久久| 欧美一区二区三区久久精品茉莉花| 国产精品免费区二区三区观看| 亚洲欧美日韩精品一区二区| 亚洲线精品一区二区三区八戒| 国产欧美精品一区aⅴ影院| 亚欧成人在线| 久久久精品日韩欧美| 欧美日韩国产精品专区| 亚洲精品自在久久| 午夜激情久久久| 久久综合色天天久久综合图片| 国产日韩亚洲欧美| 麻豆视频一区二区| 免费亚洲电影| 激情亚洲一区二区三区四区| 久久综合九色综合久99| 久久天天躁夜夜躁狠狠躁2022| 国产精品黄视频| 亚欧成人在线| 久久乐国产精品| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲欧洲在线播放| 久久婷婷亚洲| 欧美黄色aa电影| 午夜在线a亚洲v天堂网2018| 久久精品国产一区二区三区 | 免播放器亚洲一区| 亚洲欧美中文日韩在线| 狠狠久久亚洲欧美专区| 欧美一区二区三区免费看 | 蜜桃久久精品乱码一区二区| 亚洲毛片在线免费观看| 亚洲专区一区| 亚洲裸体俱乐部裸体舞表演av| 亚洲欧美日本日韩| 亚洲美女av黄| 久久视频精品在线| 亚洲欧美偷拍卡通变态| 欧美成年人视频网站| 久久激五月天综合精品| 欧美四级伦理在线| 亚洲福利在线观看| 欧美成人免费小视频| 亚洲影视在线| 亚洲视频 欧洲视频| 欧美日本国产| 欧美成年人网| 欧美美女福利视频| 美女免费视频一区| 国产精品亚洲成人| 日韩五码在线| 国产日韩亚洲| 一区二区不卡在线视频 午夜欧美不卡在 | 久久久无码精品亚洲日韩按摩| 欧美日韩一区二区在线观看| 久久婷婷国产综合尤物精品| 欧美成人性网| 巨胸喷奶水www久久久免费动漫| 欧美日韩国产不卡在线看| 免费观看亚洲视频大全| 国产日韩欧美电影在线观看| 亚洲网友自拍| 亚洲午夜激情网页| 亚洲欧美国产日韩中文字幕| 一区二区三区国产在线观看| 亚洲永久视频| 亚洲午夜在线观看| 欧美日韩亚洲天堂| 亚洲精品久久7777| 中文网丁香综合网| 欧美综合国产| 欧美影院久久久| 国产日韩欧美日韩大片| 欧美一级片一区| 美女精品国产| 亚洲国产99精品国自产| 欧美电影免费观看| 亚洲啪啪91| 国产精品中文字幕在线观看| 欧美国产日韩精品| 亚洲国产婷婷| 欧美老女人xx| 中文日韩在线视频| 久久精选视频| 欧美网站在线观看| 一区二区三区视频在线看| 亚洲欧美综合一区| 国产亚洲精品aa午夜观看| 久久国产66| 亚洲国产欧美日韩| 亚洲一区视频在线| 国产一区自拍视频| 日韩写真在线| 亚洲欧美日本国产有色| 国产日韩1区| 久久婷婷久久一区二区三区| 亚洲福利视频网站| 午夜亚洲影视| 最新亚洲一区| 国产欧美日韩一级| 欧美成人dvd在线视频| 一区二区欧美日韩| 久久全球大尺度高清视频| 99国产精品视频免费观看| 国产精品成人一区| 久久久99免费视频| 一区二区久久久久| 欧美xx视频| 午夜激情综合网| 亚洲黑丝一区二区| 国产女优一区| 欧美精品久久久久久| 欧美韩国日本一区| 亚洲尤物精选| 91久久精品久久国产性色也91| 国产精品久久久久av免费| 久久亚洲国产精品日日av夜夜| 中文亚洲字幕| 亚洲精品国产视频| 嫩草国产精品入口| 欧美影院视频| 亚洲一区在线播放| 99综合精品| 欧美色精品在线视频| 久久久久久久97| 亚洲制服欧美中文字幕中文字幕| 欧美激情一二三区| 久久精品综合| 老司机精品视频一区二区三区| 夜夜夜精品看看| 欧美激情精品久久久久久蜜臀 | 亚洲综合色激情五月| 亚洲精品国偷自产在线99热| 伊人男人综合视频网| 国产日韩欧美三区| 国产日韩欧美在线一区|