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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

【codeforces 766E】Mahmoud and a xor trip

發(fā)布時(shí)間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【codeforces 766E】Mahmoud and a xor trip 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【題目鏈接】:http://codeforces.com/contest/766/problem/E

【題意】

定義樹上任意兩點(diǎn)之間的距離為這條簡(jiǎn)單路徑上經(jīng)過(guò)的點(diǎn);
那些點(diǎn)上的權(quán)值的所有異或;
求任意兩點(diǎn)之間的距離和;

【題解】

權(quán)值最大為1e6
所以每個(gè)點(diǎn)的權(quán)值的二進(jìn)制形式最多20位左右;
則我們可以對(duì)權(quán)值的二進(jìn)制形式的每一位獨(dú)立考慮;
我們枚舉第i位;
并且在計(jì)算的時(shí)候只考慮這第i位;
可以做樹形dp;
算出穿過(guò)當(dāng)前這個(gè)節(jié)點(diǎn)的路徑(并且以其為lca->最高點(diǎn))
異或和的二進(jìn)制形式在第i為上權(quán)值為1的路徑的個(gè)數(shù)x;
(1<<i)?x就是答案了;
累加這個(gè)答案就好;
這里穿過(guò)當(dāng)前這個(gè)節(jié)點(diǎn)且路徑的距離(異或和)在第i位的權(quán)值為1;
也就是說(shuō)剩余的節(jié)點(diǎn),要么左邊異或和為0且右邊異或和為1或者是左邊疑惑和為1右邊疑惑和為0;同時(shí)為1或同時(shí)為0都不行;
記錄每個(gè)節(jié)點(diǎn)下到該節(jié)點(diǎn)的異或和第i位為0和1的路徑個(gè)數(shù)就好;這個(gè)很容易維護(hù)的;
當(dāng)然因?yàn)橛姓f(shuō)起點(diǎn)和終點(diǎn)可以相同;所以一開始累加a[i]值;

【完整代碼】

#include <bits/stdc++.h> using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) #define mp make_pair #define ps push_back #define fi first #define se second #define rei(x) scanf("%d",&x) #define rel(x) scanf("%lld",&x) #define ref(x) scanf("%lf",&x)typedef pair<int, int> pii; typedef pair<LL, LL> pll;const int dx[9] = { 0,1,-1,0,0,-1,-1,1,1 }; const int dy[9] = { 0,0,0,-1,1,-1,1,-1,1 }; const double pi = acos(-1.0); const int N = 1e5+100;int n,a[N],bit; LL ans = 0,cnt[N][2]; vector <int> G[N];void dfs(int x, int fa) {int t = (a[x] >> bit) & 1;cnt[x][t] = 1, cnt[x][1 - t] = 0;for (int y : G[x]){if (y == fa) continue;dfs(y, x);ans += ((cnt[x][0] * cnt[y][1] + cnt[x][1] * cnt[y][0])<<bit);cnt[x][t ^ 1] += cnt[y][1];cnt[x][t ^ 0] += cnt[y][0];} }int main(){//freopen("F:\\rush.txt", "r", stdin);rei(n);rep1(i, 1, n) rei(a[i]),ans+=a[i];rep1(i, 1, n - 1) {int x, y;rei(x), rei(y);G[x].ps(y), G[y].ps(x);}for (bit = 0;bit <= 22;bit++) dfs(1, 0);printf("%lld\n", ans);//printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/AWCXV/p/7626477.html

總結(jié)

以上是生活随笔為你收集整理的【codeforces 766E】Mahmoud and a xor trip的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 欧美精品久久久久a | 色呦呦麻豆 | 精品国产一区二区三区久久 | 骚虎tv| 亚洲av无码国产精品久久不卡 | 欧美在线观看一区 | 林雅儿欧洲留学恋爱日记在线 | 黄网在线 | 美女扒开尿口让男人桶 | 午夜国产一区 | 久久久国产一区 | 激情欧美一区二区免费视频 | 国产精品剧情一区 | 免费的一级片 | 国产精品电影院 | 成人美女免费网站视频 | 成人在线免费网址 | 毛片天堂| 成人中文字幕在线观看 | 中文在线亚洲 | 一卡二卡久久 | 久久久久国产精品区片区无码 | 贝利弗山的秘密在线观看 | 看毛片网| 国产日韩一级 | 人妻奶水人妻系列 | 精品国产一区二区三区在线观看 | 亚洲精品视频免费 | 超碰在线99 | 4438全国成人免费 | 9i看片成人免费看片 | 毛片基地在线播放 | 色网站观看 | 3d欧美精品动漫xxxx无尽 | 狠狠干夜夜 | 国产在线观看xxx | 丰满人妻一区二区三区53号 | 日本欧美三级 | 97国产一区 | 蜜臀av在线观看 | www久久com | 亚洲男人天堂2024 | 天天看夜夜操 | 日本一区二区三区电影在线观看 | 超碰狠狠 | 国产精品成人免费一区二区视频 | 久久精品黄 | 黄色录像a | 国产精品乱码久久久久久久久 | 国产三区视频 | wwwxxx国产| 欧美日韩精品二区 | 国产清纯在线 | 黄色美女视频网站 | 久久国产视频网站 | 超碰2023| 欧美特级黄色 | 一区二区视频国产 | 成人免费一区二区三区在线观看 | 青青草香蕉 | 草久久免费视频 | 乐播av一区二区三区 | 蜜桃久久av | 欧美日韩一区电影 | 国产毛片久久久久久国产毛片 | 成人精品网 | 性生交大片免费看视频 | 粉色午夜视频 | 久久精品噜噜噜成人 | 欧美精品久久久久久久免费 | 一本大道久久a久久综合婷婷 | 91久久久久国产一区二区 | 欧美人体一区二区三区 | 国产99re| 日韩av伦理| 毛片av在线 | 天天躁夜夜躁狠狠是什么心态 | av大片免费在线观看 | 中文字幕欧美视频 | 91国在线观看 | 福利视频不卡 | 久久久久亚洲av成人网人人网站 | 欧美男人又粗又长又大 | 日韩在线第三页 | 天堂资源中文 | 欧美精品一区二区三区视频 | 黄色69 | 福利资源在线观看 | 日韩av在线播放不卡 | 国产精品久久久久久久成人午夜 | 黄色片网站免费在线观看 | 精品国产一区二区三区久久狼黑人 | 中文字幕在线导航 | 国产视频第二页 | 黄色99| 人妻少妇精品视频一区二区三区 | 久久久国产高清 | 91theporn国产在线观看 | 国产尤物精品 |