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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JZOJ 5939. 【NOIP2018模拟10.30】阻击计划

發(fā)布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ 5939. 【NOIP2018模拟10.30】阻击计划 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Description

最近,小J發(fā)現(xiàn)小R和小Z之間的關(guān)系十分密切,心中十分嫉妒,為了拆散他們,小J經(jīng)常擾亂他們一起玩耍的計劃。
問題描述
小R和小Z打算在這個周末一起騎車在G國的城市看風(fēng)景,G國的城市有n個城市,m條雙向道路,這m條邊中,有n-1條道路已經(jīng)鋪設(shè)完畢,任意兩個城市之間都有一條由鋪設(shè)好的道路組成的路徑。
由于G國經(jīng)常收到周圍強大力場的影響,G國的每個城市至多是十條道路的端點(包括鋪設(shè)好和未鋪設(shè)好的道路)。
小R和小Z制訂了這樣一個Van耍計劃:從一個城市開始,沿著G國的道路騎行,途中不經(jīng)過之前已經(jīng)去過的城市,也不經(jīng)過之前去過的道路,最后回到起點城市。
由于他們騎得是雙人自行車,前排的座位比后排的作為更累,他們決定每次到達一個城市都會換一次位置,為了保證每個人的體力消耗相同,繼續(xù)進行他們下面的游戲,他們需要一條恰好有偶數(shù)條道路的路徑。
為了阻止他們,小J決定破壞一些沒有被鋪設(shè)好的道路,由于自身能力不足,他找到了你,并將自己一周的研究數(shù)據(jù)——破壞每條未被鋪設(shè)好的道路的花費告訴了你,希望你幫他算出他至少需要花費多少代價才能阻止小R和小Z的計劃。

Input

第一行兩個正整數(shù)n,m表示G國的城市數(shù)和道路數(shù)
接下來m行,每行三個整數(shù)A,B,C,表示G國的一條道路,從A出發(fā)到B,破壞它的代價為C(未經(jīng)鋪設(shè)的道路C值一定不為0),由于小J智商有限,已經(jīng)鋪設(shè)好的道路他不能毀壞,也就失去了偵察的必要,他們的花費為0

Output

一行一個整數(shù)表示小J的最小花費

Sample Input

Sample Input1:

5 8
2 1 0
3 2 0
4 3 0
5 4 0
1 3 2
3 5 2
2 4 5
2 5 1

Sample Input2:

9 14
1 2 0
1 3 0
2 3 14
2 6 15
3 4 0
3 5 0
3 6 12
3 7 13
4 6 10
5 6 0
5 7 0
5 8 0
6 9 11
8 9 0

Sample Output

Sample Output1:

5

樣例說明
破壞道路1-3,3-5,2-5

Sample Output2:

48

Data Constraint

對于5%的數(shù)據(jù),任何一條未經(jīng)鋪設(shè)的道路兩端都有一條直接連著他們的鋪設(shè)好的道路
對于另外10%的數(shù)據(jù),最多只有10條未被鋪設(shè)的道路
對于另外15%的數(shù)據(jù),最多只有21條未被鋪設(shè)的道路
對于上述兩檔部分分,數(shù)據(jù)有梯度
對于另外30%的數(shù)據(jù),已經(jīng)鋪設(shè)好的道路構(gòu)成一條鏈
對于所有數(shù)據(jù) n≤1000,m≤5000,每條道路的花費≤10000

Solution

  • 如果連接的新邊使圖構(gòu)成一個偶環(huán)的話肯定就不行了,也就是連接兩點的樹上路徑長度不能為奇數(shù)。

  • 而且就算加進來是一個奇環(huán),兩個奇環(huán)相交后也能形成一個偶環(huán),這也不行。

  • 轉(zhuǎn)化一下,也就是說我們需要加最大權(quán)值的邊使原樹變成一顆仙人掌。

  • 看到一個點的度數(shù)不超過 101010 ,我們考慮 DP 。

  • 設(shè) f[i][S]f[i][S]f[i][S] 表示以 iii 為根的子樹且不考慮其一些兒子(其集合為 SSS)的最大權(quán)值。

  • 為了順暢轉(zhuǎn)移,我們將形成奇環(huán)(即可能行的)的新邊掛在其兩端點 x,yx,yx,y 的 Lca 處。

  • 我們 dfs 到一個點時就先處理完其子樹的 fff ,之后就能將掛在該點上的新邊拿出來更新答案。

  • 先賦初值:f[x][i]=∑j?if[j][0]f[x][i]=\sum_{j?i}f[j][0]f[x][i]=j/?i?f[j][0]

  • 對于一對 x,yx,yx,y(其 Lca 為 zzz) ,轉(zhuǎn)移將會是:f[x][i]=max{f[x][i∣2x′∣2y′]+sum}f[x][i]=max\{f[x][i\ |\ 2^{x'}\ |\ 2^{y'}]+sum\}f[x][i]=max{f[x][i??2x??2y]+sum}

  • 這里的 x′,y′x',y'x,y 分別是 x,yx,yx,yzzz 路徑上最接近 zzz 的點(即 zzz 的兩個兒子節(jié)點)。

  • 而選了 x,yx,yx,y 后其到 zzz 的路徑上就不能再選新邊了,于是我們統(tǒng)計一個 sumsumsum 記錄產(chǎn)生的轉(zhuǎn)移值。

  • 首先有 sum+=Csum+=Csum+=C (即該路徑的權(quán)值)。

  • 接著又有:sum+=f[x][0]+f[y][0]sum+=f[x][0]+f[y][0]sum+=f[x][0]+f[y][0]x,yx,yx,y 下面都能選)

  • 然后 x,yx,yx,yzzz 路徑上側(cè)鏈點的值也要統(tǒng)計上,大概:sum+=f[fa[p]][fa[p]除p外其他兒子]sum+=f[fa[p]][fa[p]除p外其他兒子]sum+=f[fa[p]][fa[p]p]

  • 統(tǒng)計時要特判 x=zx=zx=zy=zy=zy=z 的情況。

  • 時間復(fù)雜度 O(nm+210?n)O(nm+2^{10}*n)O(nm+210?n)

  • 由于數(shù)據(jù)的一些問題,有某些點的度數(shù)竟達到了12,故以下程序中開到了 2122^{12}212

Code

#include<cstdio> #include<algorithm> #include<cmath> #include<vector> #include<cctype> using namespace std; const int N=1005,M=1<<12; struct data {int x,y,z; }a[N<<2]; int tot,num,ans; int first[N],nex[N<<1],en[N<<1]; int dep[N],fa[N][10],p[13]; int f[N][M],val[N],bel[13]; vector<int>ss[N]; inline int read() {int X=0,w=0; char ch=0;while(!isdigit(ch)) w|=ch=='-',ch=getchar();while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X; } inline void insert(int x,int y) {nex[++tot]=first[x];first[x]=tot;en[tot]=y; } inline int max(int x,int y) {return x>y?x:y; } void dfs(int x) {dep[x]=dep[fa[x][0]]+1;for(int i=first[x];i;i=nex[i])if(en[i]^fa[x][0]){fa[en[i]][0]=x;dfs(en[i]);} } inline int lca(int x,int y) {if(dep[x]<dep[y]) swap(x,y);for(int i=log2(dep[x]);i>=0;i--)if(dep[fa[x][i]]>=dep[y]) x=fa[x][i];if(x==y) return x;for(int i=log2(dep[x]);i>=0;i--)if(fa[x][i]^fa[y][i]) x=fa[x][i],y=fa[y][i];return fa[x][0]; } void dfs1(int x) {for(int i=first[x];i;i=nex[i])if(en[i]^fa[x][0]) dfs1(en[i]);tot=0;for(int i=first[x];i;i=nex[i])if(en[i]^fa[x][0]){bel[tot]=en[i];val[en[i]]=p[tot++];}for(int i=0;i<p[tot];i++){int sum=0;for(int j=0;j<tot;j++)if(!(i&p[j])) sum+=f[bel[j]][0];f[x][i]=sum;}for(int i=0;i<(int)ss[x].size();i++){int id=ss[x][i],px=0,py=0;int xx=a[id].x,yy=a[id].y,sum=a[id].z;if(xx^x){sum+=f[xx][0];for(px=xx;fa[px][0]^x;px=fa[px][0]) sum+=f[fa[px][0]][val[px]];}if(yy^x){sum+=f[yy][0];for(py=yy;fa[py][0]^x;py=fa[py][0]) sum+=f[fa[py][0]][val[py]];}for(int j=0;j<p[tot];j++)if(!(j&val[px]) && !(j&val[py]))f[x][j]=max(f[x][j],f[x][j|val[px]|val[py]]+sum);} } int main() {freopen("zujijihua.in","r",stdin);freopen("zujijihua.out","w",stdout);int n=read(),m=read();for(int i=1;i<=m;i++){int x=read(),y=read(),z=read();if(!z){insert(x,y);insert(y,x);}else{a[++num]=(data){x,y,z};ans+=z;}}dfs(1);for(int i=p[0]=1;i<13;i++) p[i]=p[i-1]<<1;for(int j=1;j<10;j++)for(int i=1;i<=n;i++)fa[i][j]=fa[fa[i][j-1]][j-1];for(int i=1;i<=num;i++){int x=a[i].x,y=a[i].y,z=lca(x,y);if((dep[x]+dep[y]-dep[z]*2)%2==0) ss[z].push_back(i);}dfs1(1);printf("%d",ans-f[1][0]);return 0; }

總結(jié)

以上是生活随笔為你收集整理的JZOJ 5939. 【NOIP2018模拟10.30】阻击计划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 美女视频黄是免费 | 国产一区二区三区 | 午夜精品99| 亚洲精品永久免费 | 国产色拍 | 国产明星换脸xxxx色视频 | 国产一区二区三区四 | 中国无码人妻丰满熟妇啪啪软件 | 19禁大尺度做爰无遮挡电影 | 小色哥网站 | 欧美日韩国产精品一区二区三区 | 久久亚洲av无码西西人体 | 美女脱光衣服让男人捅 | 国产视频一区二区三 | 国产一级二级在线观看 | 久久久久久久亚洲 | 国产www | 色又色 | 午夜精品久久久久久久99老熟妇 | 国产高潮在线观看 | 91欧美视频| 在线亚洲人成电影网站色www | 欧美一性一交 | 国产成人在线观看免费网站 | 欧美三级在线 | 在线爱情大片免费观看大全 | 国产亚洲精品熟女国产成人 | 亚洲女同志亚洲女同女播放 | 国产三级在线观看完整版 | 今天高清视频在线观看视频 | 欧美激情在线播放 | 韩国精品视频 | 日韩一区中文字幕 | 人人干美女 | 国产影视一区 | 欧美一区二区免费在线观看 | 日本少妇xxxxxx | 黄色片在哪里看 | 日韩精品中字 | 中文字字幕在线中文乱码 | 午夜视频网址 | 无码国产精品一区二区色情男同 | 伊人久久激情 | 好吊妞这里只有精品 | 久久精品欧美一区二区三区不卡 | 国产精品成人无码 | 成人黄色小说在线观看 | 免费黄色入口 | 日韩 欧美 亚洲 | 亚洲国产毛片 | 欧美日韩电影一区二区 | 痴汉电车在线观看 | 男人天堂成人网 | 国产一区二三区 | 亚洲精品视频观看 | 日本一区二区三区免费电影 | 手机看黄色| 欧美黄色小视频 | 视频一区二区免费 | av小说免费在线观看 | 欧美性视频一区二区三区 | 亚洲毛片在线播放 | 一区二区国产欧美 | www.xxxxx日本| 99久久久无码国产精品免费麻豆 | 黄色.com| 麻豆av一区二区三区久久 | 老牛嫩草二区三区观影体验 | 欧美日韩观看 | 一道本一区二区 | 东北少妇不戴套对白第一次 | 韩日av在线 | 老熟妇一区二区三区 | 天天色网站| 欧美性受xxx黑人xyx性爽 | av在线天堂网 | 少妇又紧又色又爽又刺激 | 中文字幕15页 | 熟女人妻视频 | 欧美在线色 | 欧美视频 | 国产一区二区精品丝袜 | 国产无套精品一区二区 | 欧美午夜视频 | 国产传媒在线播放 | 久久av片| 欧美精品一区二区久久婷婷 | 久久国产一| 97精品国产97久久久久久春色 | 日韩成人在线播放 | 久久久久99精品国产片 | 五月开心激情 | 午夜精品一区二区三区在线 | 九九色综合 | 久久av综合网 | 日本熟妇一区二区 | 长篇乱肉合集乱500小说日本 | 国产乱码视频 | 国产在线18 |