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

我叫張小黑
張小黑的掙扎生活
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>
            欧美福利视频网站| 亚洲人线精品午夜| 国产精品视频第一区| 午夜国产精品影院在线观看| 亚洲美洲欧洲综合国产一区| 欧美国产亚洲另类动漫| 久久精品成人| 久久久久国产精品www| 久久精品一区二区国产| 久久网站免费| 亚洲成色777777在线观看影院| 欧美国产亚洲视频| 日韩系列在线| 欧美一区二区国产| 免费视频一区| 欧美片第1页综合| 国产精品区一区二区三| 国产亚洲一区精品| 亚洲欧洲一区二区在线播放| 99视频有精品| 久久国产加勒比精品无码| 蜜桃av一区二区| 亚洲美女黄网| 午夜精品三级视频福利| 久久免费观看视频| 欧美日韩国产黄| 国产欧美一区二区三区另类精品| …久久精品99久久香蕉国产 | 欧美一区三区三区高中清蜜桃| 午夜欧美精品久久久久久久| 久久久久久久综合日本| 欧美日韩亚洲天堂| 一区二区三区在线免费播放| 在线综合欧美| 欧美aa在线视频| 亚洲欧美视频在线观看| 欧美精品啪啪| 黄色欧美日韩| 欧美一区二视频在线免费观看| 欧美福利专区| 亚洲欧美日韩综合| 欧美激情一区二区三级高清视频 | 亚洲精品看片| 久久精品视频免费播放| 国产精品毛片| 一区二区三欧美| 欧美激情四色| 久久免费国产| 国产真实精品久久二三区| 亚洲免费一在线| 亚洲精品在线免费| 欧美福利专区| 亚洲电影天堂av| 欧美11—12娇小xxxx| 亚洲国产婷婷| 香蕉免费一区二区三区在线观看 | 99视频+国产日韩欧美| 欧美在线视频二区| 亚洲综合精品自拍| 国产精品视频1区| 亚洲已满18点击进入久久| 亚洲精品网站在线播放gif| 蜜桃av噜噜一区| 在线观看亚洲专区| 母乳一区在线观看| 久久蜜桃av一区精品变态类天堂| 国产丝袜一区二区| 久久久久久久高潮| 久久精品亚洲精品| 在线欧美电影| 欧美国产一区二区| 嫩草影视亚洲| 一区二区三区久久网| 99精品热视频只有精品10| 欧美视频网址| 亚洲视频精品| 亚洲欧美日韩在线一区| 国产亚洲欧美一区二区| 欧美与黑人午夜性猛交久久久| 亚洲精品少妇| 国产精品免费网站| 久久视频在线看| 国产日韩精品一区二区| 欧美国产日本在线| 99国产精品久久久久久久成人热| 亚洲日韩中文字幕在线播放| 欧美日韩在线一二三| 欧美一区二区三区四区高清| 欧美在线播放视频| 影音先锋日韩有码| 欧美高清在线播放| 国产精品xxxxx| 亚洲视频第一页| 亚洲欧美国产三级| 国产日韩专区| 亚洲日本va午夜在线电影| 欧美性理论片在线观看片免费| 亚洲一区二区三区高清| 欧美一级免费视频| 亚洲国产精彩中文乱码av在线播放| 亚洲韩日在线| 国产毛片一区| 欧美激情一区二区三区全黄| 国产精品高潮呻吟视频| 美女国内精品自产拍在线播放| 欧美成人官网二区| 亚洲资源av| 看片网站欧美日韩| 亚洲女人天堂成人av在线| 久久aⅴ国产紧身牛仔裤| 一本大道久久a久久综合婷婷| 亚洲欧美日本国产有色| 亚洲日本成人网| 一区二区三区日韩| 亚洲精品老司机| 久久欧美肥婆一二区| 国产精品久久久久久久一区探花| 久久综合九九| 国产精品久久久久三级| 亚洲国产精品日韩| 国产日韩欧美综合在线| 在线亚洲国产精品网站| 在线观看欧美日韩国产| 亚洲一区二区免费看| 亚洲精品影视| 久久精品国产久精国产思思| 亚洲——在线| 欧美精品亚洲二区| 久久人体大胆视频| 国产女人aaa级久久久级| 一区二区三区四区国产| 亚洲精品三级| 美腿丝袜亚洲色图| 欧美成人免费小视频| 国产欧美一区视频| 中文在线资源观看网站视频免费不卡| 国产在线观看91精品一区| 亚洲一级电影| 欧美一区在线视频| 国产亚洲免费的视频看| 欧美一级淫片播放口| 久久精品国产成人| 国产嫩草一区二区三区在线观看| 一区二区电影免费观看| 一区二区三区欧美在线| 欧美刺激午夜性久久久久久久| 久久久久久久网| 影音国产精品| 牛牛影视久久网| 欧美激情在线观看| 亚洲一区国产精品| 久久久久**毛片大全| 久久综合伊人77777麻豆| 伊人久久婷婷| 欧美成人一区二区在线| 欧美成人免费在线视频| 91久久视频| 欧美日韩在线视频首页| 亚洲欧美激情一区| 久久青青草原一区二区| 亚洲第一页在线| 媚黑女一区二区| 99精品久久久| 久久久久女教师免费一区| …久久精品99久久香蕉国产| 欧美精品 国产精品| 一本久久综合亚洲鲁鲁| 久久精品国产一区二区三区免费看 | 日韩午夜在线电影| 亚洲尤物在线视频观看| 国内精品亚洲| 欧美激情二区三区| 一本久道综合久久精品| 久久久久欧美精品| 亚洲美女视频在线观看| 欧美午夜女人视频在线| 欧美一区二区精品久久911| 久久久久久日产精品| 亚洲美女在线一区| 亚洲欧美日韩综合国产aⅴ| 久久久久久有精品国产| 亚洲视频电影图片偷拍一区| 欧美黄色成人网| 欧美大片在线看免费观看| 国内精品久久久久影院优| 国产一区二区激情| 久久成年人视频| 欧美一级淫片播放口| 国产亚洲精品v| 欧美黄色免费网站| 欧美激情小视频| 欧美怡红院视频| 久久9热精品视频| 一区二区日韩精品| 久久婷婷蜜乳一本欲蜜臀| 亚洲日本一区二区| 亚洲高清在线视频| 久久久久欧美| 亚洲永久免费精品| 国产精品国产三级国产普通话三级|