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

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

生活随笔

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

编程问答

AtCoder AGC004F Namori (图论)

發(fā)布時(shí)間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AtCoder AGC004F Namori (图论) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接

https://atcoder.jp/contests/agc004/tasks/agc004_f

題解

神仙題。。

首先考慮樹(shù)的情況,樹(shù)是二分圖,因此假設(shè)我們對(duì)二分圖進(jìn)行黑白染色,那么操作就變成了,每次選擇兩個(gè)不同色的點(diǎn)來(lái)取反。然后再把黑色視作標(biāo)記,那么問(wèn)題就變成了,初始一些點(diǎn)上有標(biāo)記,每次可以把標(biāo)記沿著邊移動(dòng)到一個(gè)沒(méi)標(biāo)記的點(diǎn),要把標(biāo)記全部移動(dòng)到和原來(lái)不同的位置上,求最小代價(jià)!
然后這個(gè)問(wèn)題的做法就是,首先如果兩種顏色個(gè)數(shù)不同就無(wú)解,否則考慮一個(gè)下界,對(duì)于每一條邊而言,它至少要運(yùn)送標(biāo)記的次數(shù)等于其一端子樹(shù)內(nèi)黑白點(diǎn)個(gè)數(shù)差的絕對(duì)值。對(duì)所有的邊求和就是答案的下界,而我們也能構(gòu)造出來(lái)一種達(dá)到這個(gè)下界的方案,構(gòu)造詳見(jiàn)官方題解。

然后考慮基環(huán)樹(shù)。當(dāng)環(huán)是奇環(huán)和偶環(huán)時(shí),其作用不同,因此需要分類(lèi)討論。

當(dāng)環(huán)是偶環(huán)時(shí),非樹(shù)邊的作用是多了一條運(yùn)送標(biāo)記的邊。假設(shè)這條邊運(yùn)送了\(x\)個(gè)標(biāo)記(可正可負(fù)),那么其所影響的是環(huán)上的點(diǎn),需要最小化的是一個(gè)\(\sum |x-a_i|\)的形式,直接取中位數(shù)即可。

當(dāng)環(huán)是奇環(huán)時(shí),非樹(shù)邊的作用是可以給兩個(gè)端點(diǎn)的標(biāo)記同時(shí)\(+1\)\(-1\). 顯然\(+1\)\(-1\)都出現(xiàn)是不優(yōu)的,由于操作可逆可以假設(shè)是\(+1\) (否則交換初始狀態(tài)和終止?fàn)顟B(tài))。在這種情況下,若兩種顏色個(gè)數(shù)奇偶性不同就無(wú)解,否則執(zhí)行這種操作的次數(shù)\(x\)是確定的(因?yàn)槌跏己徒K止時(shí)兩種顏色點(diǎn)數(shù)確定)。那么就可以認(rèn)為給這兩個(gè)端點(diǎn)分別加了\(x\)個(gè)標(biāo)記,然后再執(zhí)行樹(shù)的算法即可。

時(shí)間復(fù)雜度\(O(N)\)\(O(N\log N)\).

代碼

#include<bits/stdc++.h> #define llong long long using namespace std;const int N = 1e5; struct Edge {int nxt,v; } e[(N<<1)+3]; int fe[N+3]; int fa[N+3]; bool vis[N+3]; int dep[N+3]; int a[N+3]; int s[N+3]; vector<int> vec; int n,m,en,au,av,sum; llong ans;int absl(int x) {return x<0?-x:x;}void addedge(int u,int v) {en++; e[en].v = v;e[en].nxt = fe[u]; fe[u] = en; }void dfs(int u,int prv) {a[u] = dep[u]&1?-1:1; sum += a[u]; s[u] = a[u];vis[u] = true;for(int i=fe[u]; i; i=e[i].nxt){int v = e[i].v;if(v==prv) continue;if(vis[v]){au = u,av = v;}else{dep[v] = dep[u]+1;fa[v] = u;dfs(v,u);s[u] += s[v];}} }void dfs2(int u,int prv) {s[u] = a[u];vis[u] = true;for(int i=fe[u]; i; i=e[i].nxt){int v = e[i].v;if(v==prv) continue;if(vis[v]){au = u,av = v;}else{dep[v] = dep[u]+1;dfs2(v,u);s[u] += s[v];}} }int main() {scanf("%d%d",&n,&m);for(int i=1; i<=m; i++){int u,v; scanf("%d%d",&u,&v);addedge(u,v); addedge(v,u);}sum = 0; dep[1] = 0; dfs(1,0);if(m==n-1){if(sum) {puts("-1");}else{ans = 0ll;for(int i=1; i<=n; i++){ans += absl(s[i]);}printf("%lld\n",ans);}}else if(m==n){if(dep[au]>dep[av]) swap(au,av);if((dep[au]^dep[av])&1){if(sum) {puts("-1");}else{vec.clear();int v = av;while(dep[v]>dep[au]){vec.push_back(-s[v]);v = fa[v];}sort(vec.begin(),vec.end());int x = vec[vec.size()>>1];a[au] -= x; a[av] += x;for(int i=1; i<=n; i++) vis[i] = 0;dfs2(1,0);ans = absl(x);for(int i=1; i<=n; i++){ans += absl(s[i]);}printf("%lld\n",ans);}}else{if(absl(sum)&1) {puts("-1");}else{if(sum>0){for(int i=1; i<=n; i++) s[i] = -s[i],a[i] = -a[i];sum = -sum;}int x = (-sum)>>1;a[au] += x; a[av] += x;for(int i=1; i<=n; i++) vis[i] = 0;dfs2(1,0);ans = x;for(int i=1; i<=n; i++){ans += absl(s[i]);}printf("%lld\n",ans);}}}for(int i=1; i<=n; i++) fe[i] = vis[i] = fa[i] = 0;for(int i=1; i<=en; i++) e[i].v = e[i].nxt = 0;en = 0;return 0; }

總結(jié)

以上是生活随笔為你收集整理的AtCoder AGC004F Namori (图论)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 91字幕网| 女人一区二区三区 | 亚洲最大黄色 | 中文字幕亚洲一区 | 日本韩国毛片 | 国产超碰自拍 | 国产精品久久久久久久久 | 成人乱人乱一区二区三区一级视频 | 影音先锋每日资源 | 久久久人妻无码一区二区 | 欧美在线播放一区二区 | 欧美色交| 国产精品亚洲lv粉色 | 日韩欧美一区二区三区视频 | 国产尤物av| 欧洲金发美女大战黑人 | 91免费国产在线观看 | 亚洲乱码一区二区三区 | jizz18欧美18 | 性网| 亚洲女人天堂 | 免费三级在线 | 日韩三级精品 | 91在线播放视频 | 丰满白嫩尤物一区二区 | 成年人网站黄色 | 国产在线观看第一页 | 大尺码肥胖女系列av | 亚洲激情综合 | 青青草原综合久久大伊人精品 | 久久97精品久久久久久久不卡 | 久久com | 欧美一区一区 | 九月激情网 | 婷婷六月综合网 | 精品日本一区二区三区在线观看 | 日本公妇乱偷中文字幕 | 你懂的在线播放 | 大胸美女网站 | 国产精品30p| 精品一区二区三区免费看 | 国产精品视频一区二区三 | 欧美专区在线播放 | 日韩视频在线观看一区二区 | 国产av日韩一区二区三区精品 | 国产欧美精品一区二区在线播放 | 风流少妇 | 伊人青青草原 | 全黄一级裸体 | 欧美性受xxxx黑人猛交88 | 中文字幕二区在线观看 | 波多野在线视频 | 国产精品精 | 夜夜操夜夜骑 | 亚洲春色另类 | 国产夜色视频 | 国产福利第一页 | 日韩精品1区2区3区 欧美一本 | 黄色片小视频 | 在线草| 一级特毛片 | 欧美一卡二卡三卡四卡 | 一级特黄色大片 | 五月天丁香激情 | 无码人妻丰满熟妇精品区 | 欧美老熟妇乱xxxxx | 强制憋尿play黄文尿奴 | 91黄色入口 | 中文字幕av一区二区三区人妻少妇 | 91春色 | 肉嫁高柳家 高清 | 日本激情网址 | 欧美视频1区 | 亚洲综合日韩精品欧美综合区 | 精品久久福利 | 我要看黄色大片 | 久久九九国产视频 | 国产精品综合在线 | 日韩狠狠操 | av调教| 一本色道综合久久欧美日韩精品 | 精品欧美一区二区三区在线观看 | 中文资源在线观看 | 久久久久亚洲av成人毛片韩 | 成人污网站 | 国产无套精品 | 美女无遮挡免费网站 | 91美女网 | 亚洲人人夜夜澡人人爽 | 毛片在线免费观看网站 | 91麻豆精品91久久久久同性 | 无码精品人妻一区二区三区漫画 | 大肉大捧一进一出好爽 | 欧洲一区二区三区四区 | 高清一区二区三区四区五区 | 中日韩黄色片 | 日韩精品福利视频 | 一区二区精品视频在线观看 | 在线视频日韩精品 |