日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人 黄 色 免费播放 | 日本69式三人交 | 成人黄色大全 | 182tv午夜 | 青青青草视频在线 | 亚洲美女自拍视频 | 成人高清视频在线观看 | 日本四虎影院 | 爱操av | 国产欧美一区二区三区视频在线观看 | 欧美性在线视频 | 性人久久久久 | 在线观看日本视频 | 国产亚洲成av人在线观看导航 | 欧美不卡视频在线观看 | 亚洲精品www久久久久久 | 在线无 | 黄色片网战| 国产网红无码精品视频 | 狠狠干青青草 | 国内精品人妻无码久久久影院蜜桃 | 毛片一级在线观看 | 一级在线免费观看 | 一区二区啪啪 | 一区二区三区日 | 阿的白色内裤hd中文 | 天天色播 | 国产网站在线 | 欧洲美女粗暴牲交免费观看 | 少妇又色又爽又黄的视频 | 两个小y头稚嫩紧窄h文 | 动漫美女被x | 日韩在线一级片 | 一卡二卡三卡在线观看 | 日本精品一区二区在线观看 | 国产成人三级在线观看视频 | 国产在线一级片 | 国产日批视频在线观看 | 亚洲一区欧洲二区 | 亚洲欧美日韩综合在线 | 91成人短视频在线观看 | 亚洲一区欧美一区 | 国产精品国产三级国产aⅴ下载 | 日本55丰满熟妇厨房伦 | 在线观看的黄色网址 | 亚洲精品国产无码 | 欧美性猛交xxxx乱大交 | 欧美视频久久 | 521av在线| 伊人影院在线观看 | 久草久 | 中文一区视频 | 爱情岛论坛自拍 | 69视频免费 | 69视频国产 | 日韩成人福利 | 狠狠操综合网 | 中文字幕黑人 | 欧美亚洲视频 | 亚洲破处视频 | 性欢交69国产精品 | 国产精品丝袜 | 国产精品99久久久久久久久久久久 | www.亚洲综合 | 国产精品九九九九九 | 国产日韩欧美视频在线 | 九色激情网 | 老熟妇高潮一区二区三区 | 伊人影院中文字幕 | 蜜臀av一区 | 国产精品极品白嫩在线 | 国产人妖ts重口系列网站观看 | 国产视频色| 成人毛片100部免费看 | 精品一区二区三区四区视频 | 亚洲欧美色图片 | 色综合天天射 | 日本护士体内she精2xxx | 麻豆porn| 日韩精品在线播放 | 久久久久五月 | 中文字幕久久久久久久 | 五月婷婷,六月丁香 | 亚洲综合第一区 | 九九视频在线播放 | 国产日韩精品一区二区 | 欧美啊v| 亚洲一区二区福利视频 | 爱爱视频一区二区 | 亚洲美女视频一区 | 涩涩视频免费在线观看 | 91在线观看 | 欧美第一网站 | 99re视频在线| 亚洲图片 欧美 | 九九久久国产视频 | 亲嘴扒胸摸屁股免费视频日本网站 | 伊人免费| 久久精品伊人 |