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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hihocoder 1035 : 自驾旅行 III

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hihocoder 1035 : 自驾旅行 III 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述
給定一棵含有 n 個結點的樹,結點從 1 標號。你從 1 號結點駕車出發,希望遍歷一些關鍵結點(訪問到就好,不需要按照這些關鍵結點的輸入順序)。每條邊有兩個權值,c0, c1 分別表示步行和駕車經過這條邊的代價。每次你可以選擇駕車經過一條邊(當且僅當有車),或者將車停放在當前所在的結點(如果有車),步行經過一條邊。
求遍歷完所有關鍵結點的最少代價。
注意: 你可以在任意結點結束遍歷,即使當前沒有車。

解題報告:
用時:2h20min,1RE1WA
這題做的不是很好,首先看到題目思考了許久找不到好一點的狀態,然后參考了題解的狀態
\(f[x][0/1/2/3/4]\)表示x子樹內所有的關鍵點都已經走完的5中狀態的最小代價
\(f[x][0]\)表示只考慮人走,且人必須回到x的最小代價
\(f[x][1]\)表示只考慮人走,且人可以不回來的最小代價(用于f[x][4]的轉移)
\(f[x][2]\)表示人車一起走,且兩者都回來的最小代價
\(f[x][3]\)表示人車一起走,且人回車不回的最小代價(用于f[x][4]的轉移)
\(f[x][4]\)表示人車一起走,最后兩者都不回來的最小代價
在自己做的時候并沒有定義到\(f[x][3]\)這個狀態,然后發現\(f[x][4]\)是可以借助\(f[x][3]\)轉移的

\(dis\)為該邊人走的代價,\(dis0\)為車走的代價,\(u\)為x的子節點
\(f[x][0]=\sum_{u}f[u][0]+2*dis\)
\(f[x][2]=\sum_{u}Min(f[u][2]+2*dis0,f[u][0]+2*dis)\)
這兩個比較顯然,對于\(f[x][2]\)你可以帶著車一起走完回來,也可以把車放在原地,走完回來
\(t=(f[u][2]+2*dis0,f[u][0]+2*dis)\)
\(f[x][1]\)就是某一個子節點走的是\(f[u][1]+dis\),其他節點走的是\(t\)
\(f[x][3]\)同理,某一個點走\(f[u][3]+dis+dis0\),其他點走\(t\)
顯然這兩個節點的特殊節點的選擇都是選擇貢獻最大的,即\(f[u][1]+dis\)\(f[u][0]+dis*2\)做差后最大的一個
對于\(f[x][4]\)兩者都不回,我們要分情況討論:
1.在遍歷最后一顆子樹時,有車
顯然遍歷之前是\(f[x][3]\),然后可以選擇最后一顆子樹是開車還是不開車對應\(f[u][1]\)\(f[u][4]\)
2.若此時沒有車
遍歷之前狀態是\(f[x][2]\),其中某個子樹是\(f[u][3]\),表示車沒有回來人回來了,然后和上面一種情況不同的是:只能選擇人走了,那么就是在不同于選擇了\(f[u][3]\)的子樹中再選擇一個走\(f[v][1]\)
一個我沒注意到的細節:
如果u同于v,那么應該記錄一個次小值,不然就會少一組轉移

#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath> #define RG register #define il inline #define iter iterator #define Max(a,b) ((a)>(b)?(a):(b)) #define Min(a,b) ((a)<(b)?(a):(b)) using namespace std; typedef long long ll; const int N=1e6+5; int head[N],num=0,to[N<<1],nxt[N<<1],dis[N<<1],dis0[N<<1]; void link(int x,int y,int d,int d0){nxt[++num]=head[x];to[num]=y;dis[num]=d;dis0[num]=d0;head[x]=num; } int gi(){int str=0;char ch=getchar();while(ch>'9' || ch<'0')ch=getchar();while(ch>='0' && ch<='9')str=(str<<1)+(str<<3)+ch-48,ch=getchar();return str; } int n,m;bool vis[N],mark[N];ll f[N][5]; void dfs(int x,int last){int u,imp;ll t,f1=0,f2=0,f3=0,tmp,f4=0;mark[x]=vis[x];for(int i=head[x];i;i=nxt[i]){u=to[i];if(u==last)continue;dfs(u,x);mark[x]+=mark[u];if(!mark[u])continue;f[x][0]+=f[u][0]+(dis[i]<<1);t=Min(f[u][2]+(dis0[i]<<1),f[u][0]+(dis[i]<<1));f[x][2]+=t;f1=Min(f1,f[u][1]-f[u][0]-dis[i]);tmp=f[u][3]+dis[i]+dis0[i]-t;if(tmp<f2){f4=f2;f2=tmp;imp=u;}else if(tmp<f4)f4=tmp;f3=Min(f3,min(f[u][4]+dis0[i],f[u][1]+dis[i])-t);}f[x][1]=f[x][0]+f1;f[x][3]=f[x][2]+f2;f[x][4]=f[x][2]+f3;f[x][4]=Min(f[x][4],f[x][3]);for(int i=head[x];i;i=nxt[i]){u=to[i];if(u==last || !mark[u])continue;t=Min(f[u][2]+(dis0[i]<<1),f[u][0]+(dis[i]<<1));tmp=f[u][1]+dis[i]-t;if(u==imp)f[x][4]=Min(f[x][4],f[x][2]+tmp+f4);else f[x][4]=Min(f[x][4],f[x][2]+tmp+f2);} } void work() {int x,y,d,d0;n=gi();for(int i=1;i<n;i++){x=gi();y=gi();d=gi();d0=gi();link(x,y,d,d0);link(y,x,d,d0);}m=gi();for(int i=1;i<=m;i++){x=gi();vis[x]=true;}dfs(1,1);printf("%lld\n",Min(f[1][4],f[1][0])); }int main() {work();return 0; }

轉載于:https://www.cnblogs.com/Yuzao/p/7527289.html

總結

以上是生活随笔為你收集整理的hihocoder 1035 : 自驾旅行 III的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天狠天天透 | 精品人妻少妇一区二区三区 | 中文字幕免费高清在线观看 | 亚洲欧洲自拍偷拍 | 婷婷丁香久久 | 日本呦呦 | 久在线观看视频 | 黄色av电影在线观看 | 亚洲精品久久久乳夜夜欧美 | 日韩五月天 | 亚洲国产天堂 | 麻豆成人免费视频 | 欧美极品少妇xxxxⅹ免费视频 | 亚洲精品国产无码 | 亚洲特级黄色片 | aa黄色片| 毛片在线观看网站 | 国产欧美一区二区精品忘忧草 | 奇米影视奇米色 | 欧美视频在线观看 | 欧美性生活xxx | www.97色| 91黄瓜视频 | 久久久久久免费精品 | 久久久无码人妻精品无码 | 国产精品伦子伦免费视频 | 日韩一级片网站 | 国产一二视频 | 亚洲欧美黄色片 | 女人一区二区 | 国产精品久久久久无码av色戒 | 欧美91精品久久久久国产性生爱 | 夫妻黄色片| 在线观看国产福利 | 激情欧美综合 | 美女三级黄色片 | 黄色大片网站在线观看 | 中文字幕亚洲图片 | 欧美黑人孕妇孕交 | 国产高潮呻吟久久 | 国产精品成人免费一区二区视频 | 91caob | 豆花视频成人 | 天天干天| 国产超碰在线 | 国产亚洲精品久久久久久久久动漫 | 日日躁夜夜躁 | 国产伦精品一区二区三区视频痴汉 | 色悠悠av | 成人一级免费视频 | 黄网在线观看免费 | 亚洲第四页| 国产欧美日 | 国产精品啪啪啪视频 | 一区二区三区国产精品视频 | 黄av在线 | 欧美日韩激情在线一区二区三区 | 欧美精品一区在线 | 在线观看黄色大片 | 久久久国产精品视频 | 国产精品一区无码 | 亚洲综合一二三 | 国产一级片中文字幕 | 亚洲网站在线观看 | 日韩欧美aaa | 天天综合网国产 | 米奇7777狠狠狠狠视频 | 奇米影视在线 | 欧美国产日韩精品 | 国产91清纯白嫩初高中在线观看 | 污片免费网站 | 国产乱真实合集 | 大陆农村乡下av | 黄片毛片一级 | 高清久久久久久 | 日韩色图片 | 欧美一区二区视频免费观看 | 免费二区 | 狠狠爱网站 | 日本亚洲综合 | 东北女人啪啪ⅹxx对白 | 91cn.com| 亚洲资源网 | 国产精品免费av一区二区三区 | 久久mm| 椎名空在线播放 | 精品人妻一区二 | va在线播放 | 欧美又粗又大aaa片 老熟妇仑乱视频一区二区 亚洲妇女体内精汇编 | 久久久久久一区二区 | 日韩123区| 日本a级在线| 亚洲国产精| 国产免费午夜 | a毛片在线观看 | 在线资源站 | 成人午夜一区二区 | 国产第一亚洲 | 99热在线观看 |