日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu3234 带权并查集(XOR)

發(fā)布時(shí)間:2025/6/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu3234 带权并查集(XOR) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題意:
? ? ? 給你n個(gè)未知的正整數(shù),有三總操作
? ? ? I P V ? ? ? ? ? ?P的值是V
? ? ? I P Q V ? ? ? ? ?P XOR Q = V
? ? ? Q K x1 x2....xk ?求這k個(gè)數(shù)所有異或后的值
思路:
? ? ? 帶權(quán)并查集,感覺這個(gè)題目用的很巧,設(shè)計(jì)到以下知識(shí),a ^ b = c ,a ^ c = b ,b?

^ c = a他們?nèi)齻€(gè)是等價(jià)的,還有就是a ^ b ^ a = b ,這個(gè)題目自己好好畫畫就出來了,確定好帶權(quán)并查集后可以虛擬出來一個(gè)點(diǎn),把它做為真實(shí)點(diǎn),就是如果誰的根是他那么這個(gè)值就已經(jīng)確定了,我虛擬的是0點(diǎn),把其他的點(diǎn)都映射成+1,還有就是這個(gè)題目的核心部分就是查詢的那個(gè)地方,除了確定的點(diǎn),其他的必須是每個(gè)集合都出現(xiàn)了偶數(shù)個(gè)的時(shí)候才能算出來,原因就是“性質(zhì)不同的數(shù)不能乘在一起,要么就是相對(duì)位置相乘,要么就是確定的數(shù)字相乘,兩個(gè)相對(duì)位置相乘的到的是確定的數(shù)字,確定的數(shù)字相乘得到的還是確定的數(shù)字”,這個(gè)題目設(shè)計(jì)到很多細(xì)節(jié),我就不說了,誰做誰知道啊! 還有就是提醒個(gè)最坑的地方 a ^?b != c 他和 (a ^ b) != c不是等價(jià)的,優(yōu)先級(jí)的原因。其他的做的時(shí)候就知道了,今天手殘,這個(gè)題目做了17次才AC.


#include<stdio.h> #include<string.h>#define N 22000 int mer[N] ,Xor[N]; int ss[N];int finds(int x) {if(x == mer[x]) return x;int t = mer[x];mer[x] = finds(mer[x]);Xor[x] = Xor[x] ^ Xor[t];return mer[x]; }int main () {int n ,m ,i ,j ,num ,p ,q ,v ,k;int n1 ,n2 ,n3 ,cas = 1 ,fact ,stop;char str[10] ,c;while(~scanf("%d %d" ,&n ,&m) && n + m){printf("Case %d:\n" ,cas ++);for(i = 0 ;i <= n ;i ++)mer[i] = i ,Xor[i] = 0;for(stop = fact = 0 ,i = 1 ;i <= m ;i ++){scanf("%s" ,str);if(str[0] == 'I'){fact ++; int ii = 0;while(1){scanf("%d%c" ,&num ,&c);ii ++;if(ii == 1) n1 = num;if(ii == 2) n2 = num;if(ii == 3) n3 = num;if(c == '\n') break;}if(stop) continue;if(ii == 2){p = n1 + 1 ,v = n2;int x = finds(p);if(!x){if(Xor[p] == v) continue;stop = 1;printf("The first %d facts are conflicting.\n" ,fact ++);}else{mer[x] = 0;Xor[x] = Xor[p] ^ v;}}if(ii == 3){p = n1 + 1 ,q = n2 + 1 ,v = n3;int x = finds(p) ,y = finds(q);if(x == y){if((Xor[p] ^ Xor[q]) == v) continue;stop = 1;printf("The first %d facts are conflicting.\n" ,fact ++);}else{if(y){mer[y] = x;Xor[y] = Xor[p] ^ Xor[q] ^ v; }else{mer[x] = y;Xor[x] = Xor[p] ^ Xor[q] ^ v; }}}}else{scanf("%d" ,&k);memset(ss ,0 ,sizeof(ss));int sum = 0 ,mk = 0;for(j = 1 ;j <= k ;j ++){scanf("%d" ,&num);num ++;ss[finds(num)] ++;sum = sum ^ Xor[num];}for(j = 1 ;j <= n ;j ++)if(ss[j] & 1) mk = 1;if(stop) continue;if(mk) puts("I don't know.");else printf("%d\n" ,sum);}}puts("");}return 0; }

總結(jié)

以上是生活随笔為你收集整理的hdu3234 带权并查集(XOR)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产探花在线精品一区二区 | 人人妻人人澡人人爽 | 九九热久久免费视频 | 超碰99热 | 天天草影院 | 日批视频免费看 | 激情午夜网 | 中文天堂在线观看 | 国产精品久久久亚洲 | 国产香蕉视频 | 免费看裸体网站视频 | 一区二区三区免费看视频 | 欧洲成人午夜精品无码区久久 | h亚洲| 石原莉奈在线播放 | 女女h百合无遮羞羞漫画软件 | 国产又粗又猛又爽又黄av | 潘金莲黄色一级片 | 日本美女逼 | 日韩精品视频一区二区在线观看 | 日日干日日干 | 亚洲综合在线观看视频 | 激情久久av一区av二区av三区 | 日韩欧美国产一区二区三区在线观看 | 少妇高潮久久久 | 波多野结衣一二三区 | 国产一区美女 | 日日夜夜免费精品视频 | 久久性网| 一区二区三区不卡视频在线观看 | 免费在线观看网址入口 | 久久艹av | 中文字幕免费在线播放 | 99这里精品| 黄色免费片 | 国产18精品乱码免费看 | 农村脱精光一级 | 美女校花脱精光 | 黄a网站| 在线h网站 | 亚洲国产成人一区 | 高清毛片aaaaaaaaa片 | 色狠久| 国产乱国产乱老熟 | 亚洲av无码国产精品永久一区 | 中国精品视频 | 成人教育av| 亚洲av无码一区二区三区在线播放 | 欧美第一夜 | 免费毛片大全 | 国产精品粉嫩 | 激情内射亚洲一区二区三区爱妻 | 91污片 | 午夜一级大片 | 亚洲国产精品系列 | 99999av| 久久精品99久久久久久久久 | 韩国久久久久久 | 中文精品一区二区三区 | 国产黄色免费视频 | caoporn免费在线 | 国产精品二区一区二区aⅴ污介绍 | 日韩在线你懂的 | 精品视频在线一区 | 欧美国产精品一区二区 | 色午夜 | 激情六月婷 | 久久午夜电影网 | 亚洲av无码一区二区三区dv | 午夜视频入口 | 久久精品亚洲无码 | 欧美第一精品 | 国产高清一级 | 熟女人妻aⅴ一区二区三区60路 | 中文字幕一区二区三区夫目前犯 | 人妖ts福利视频一二三区 | 99精品欧美| 美女隐私无遮挡免费 | 一本色道久久综合亚洲二区三区 | 久久美女免费视频 | 高清av一区二区 | 婷婷影院在线观看 | 国产五区 | 国产精品999. | 懂色视频在线观看 | 观看av免费 | 不卡中文字幕在线观看 | 精品不卡一区 | 精品人妻一区二区三区日产乱码卜 | 秋霞电影网一区二区 | 麻豆自拍偷拍 | 亚洲人成电影一区二区在线 | 天天操天天操天天操天天操 | 成人无码久久久久毛片 | 国产福利视频一区二区 | 深爱激情久久 | 欧美大片视频在线观看 | 91免费观看视频 | 免费观看污|