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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【树形DP】 HDU 2196 Computer

發布時間:2023/12/1 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【树形DP】 HDU 2196 Computer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意:求節點間的最大距離


先DFS一次 記錄下 每一節點的子樹下的最大距離(DP[ u ] [ 0 ])和第二大距離(DP[ u ] [ 1 ])

用DP[ v ] [ 2 ] 表示由v的父節點來的最大距離

再取DP[ u ] [ 0 ] 與 DP[ u ][ 2 ] 的最值

#include <cstdio> #include <cstring> #include <cstdlib> #include <string> #include <iostream> #include <algorithm> #include <sstream> #include <cmath> using namespace std; #include <queue> #include <stack> #include <vector> #include <deque> #include <set> #include <map> #include <time.h>; #define cler(arr, val) memset(arr, val, sizeof(arr)) #define FOR(i,a,b) for(int i=a;i<=b;i++) #define IN freopen ("in.txt" , "r" , stdin); #define OUT freopen ("out.txt" , "w" , stdout); typedef long long LL; const int MAXN = 10014; const int MAXM = 20014; const int INF = 0x3f3f3f3f; const int mod = 1000000007; struct node {int v,next;LL val; } edge[MAXM]; int head[MAXM],tol; LL dp[MAXN][3]; bool vis[MAXN]; void init() {cler(head,-1);tol=0; } void addedge(int u,int v,LL val) {edge[tol].v=v,edge[tol].val=val,edge[tol].next=head[u];head[u]=tol++;edge[tol].v=u,edge[tol].val=val,edge[tol].next=head[v];head[v]=tol++; } void dfs1(int u) {if(vis[u]) return ;vis[u]=true;for(int i=head[u]; ~i; i=edge[i].next){int v=edge[i].v;if(!vis[v]){dfs1(v);dp[u][1]=max(dp[u][1],dp[v][0]+edge[i].val);if(dp[u][1]>dp[u][0])swap(dp[u][1],dp[u][0]);}} } void dfs2(int u) {if(vis[u]) return ;vis[u]=true;for(int i=head[u]; ~i; i=edge[i].next){int v=edge[i].v,val=edge[i].val;if(!vis[v]){if(dp[u][0]>dp[v][0]+val)//dp[u][0]不是由dp[v][0]+val而來的dp[v][2]=max(dp[v][2],max(dp[u][0]+val,dp[u][2]+val));//所以從非v子樹來的更長else //dp[u][0]由dp[v][0]+val而來的dp[v][2]=max(dp[v][2],max(dp[u][1]+val,dp[u][2]+val));//推斷非v子樹來的哪個長dfs2(v);}} } int main() { #ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin); #endifint n;while(~scanf("%d",&n)){init();for(int i=2; i<=n; i++){int a;LL b;scanf("%d %I64d",&a ,&b );addedge(i,a,b);}cler(vis,false);cler(dp,0);dfs1(1);cler(vis,false);dfs2(1);for(int i=1;i<=n;i++)printf("%I64d\n",max(dp[i][2],dp[i][0]));}}

轉載于:https://www.cnblogs.com/gccbuaa/p/7091545.html

總結

以上是生活随笔為你收集整理的【树形DP】 HDU 2196 Computer的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 手机看片日韩在线 | 日韩免费视频网站 | 成人人人人人欧美片做爰 | 亚洲最色网站 | 国产精品永久免费视频 | 一级a毛片 | 亚洲 精品 综合 精品 自拍 | 欧美午夜精品久久久久久蜜 | 免费av在线播放 | 色就色欧美 | 一区影视 | 好屌妞视频这里只有精品 | 日韩欧美电影一区二区三区 | 水密桃av | 男女曰逼视频 | 天堂中文在线播放 | 中文亚洲av片在线观看 | 日韩免费a | 亚洲蜜臀av | 欧美日韩在线视频观看 | 成人激情在线视频 | 日日干日日爽 | 欧美一区二区三区成人久久片 | 免费看一级视频 | 天天婷婷 | 色图18p| 国产精品一品二区三区的使用体验 | 欧美又大又硬又粗bbbbb | 亚洲精品日产精品乱码不卡 | 国产在线第二页 | 五月激情六月婷婷 | 国产精品入口麻豆 | 天堂资源网 | 1000部啪啪未满十八勿入超污 | 天堂在线视频观看 | 毛片www| 国产又粗又长又黄 | 在线观看免费视频一区二区 | 欧美 亚洲 另类 偷偷 自拍 | 久久久久国色av免费观看性色 | 亚洲精品视频在线播放 | 亚洲第一网址 | 国内一区二区视频 | 不卡视频免费在线观看 | 久久久久久久久久久久电影 | 97公开视频 | 精品一区二区三区在线视频 | 国模大胆一区二区三区 | 人妻精品一区 | 强行挺进皇后紧窄湿润小说 | 蜜臀久久99精品久久久画质超高清 | 男人天堂中文字幕 | 午夜视频福利网站 | 99色在线视频 | 久久久久国产一区二区三区 | 亚洲第3页 | 最新的黄色网址 | 国产高清视频在线免费观看 | 密桃成熟时在线观看 | 欧美成人片在线观看 | 亚洲av成人无码一区二区三区在线观看 | 欧美日韩精品二区 | 青草视频在线观看免费 | 精品99久久久久成人网站免费 | 狼人狠狠干 | 国产91一区二区三区在线精品 | 国产1区2区3区中文字幕 | 国产精品一区在线观看 | 日韩中文字幕视频 | 潮喷失禁大喷水aⅴ无码 | 日本免费在线视频观看 | 麻豆爱爱视频 | 伊人成人22 | 正在播放日韩 | 天堂中文字幕免费一区 | 欧美资源 | 亚洲精品国产成人久久av盗摄 | 久久精品在线观看 | 久久网站av | 风间ゆみ大战黑人 | 亚洲精品久久久久久久蜜桃 | 五月天婷婷导航 | 国产成人精品综合在线观看 | 五月开心网 | 91av视频 | 久久久久久久久免费看无码 | 久久精品视频中文字幕 | 黄色免费网站在线 | 午夜免费网 | 亚洲熟妇av日韩熟妇在线 | 欧美a∨亚洲欧美亚洲 | 午夜免费视频网站 | 一区国产视频 | 公交顶臀绿裙妇女配视频 | 色爱五月天 | 亚洲综合网站 | 玖草视频在线 | 色情毛片 | 久久久久久久久久艹 |