【树形DP】 HDU 4118 Holiday's Accommodation
来源:互联网 发布:安卓手机数据恢复系统 编辑:程序博客网 时间:2024/06/01 08:04
题目链接: HDU 4118 Holiday's Accommodation
分析: 可以知道每条边要走的次数刚好的是这条边两端的点数的最小值的两倍。
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<stack>using namespace std;const int maxn=100000+10;struct node{ int to, dix, next;}tree[maxn<<1];int head[maxn],g[maxn],ptr;bool vis[maxn];void Init(){ ptr=1; memset(vis,false,sizeof(vis)); memset(head,-1,sizeof(head));}void AddEdge(int a,int b,int c){ tree[ptr].to=b; tree[ptr].dix=c; tree[ptr].next=head[a]; head[a]=ptr++;}void DFS(){ vis[1]=true; stack<int>M; M.push(1); int rt=head[1]; while(true){ if(rt==-1){ int a=M.top(); M.pop(); if(M.empty()) break; g[M.top()]+=g[a]; } rt=head[M.top()]; while(rt!=-1){ if(!vis[tree[rt].to]){ vis[tree[rt].to]=true; M.push(tree[rt].to); break; } rt=tree[rt].next; } }}int main(){ int T,cas=1; scanf("%d",&T); while(T--){ Init(); int n; scanf("%d",&n); for(int i=1;i<n;++i){ int a,b,c; scanf("%d%d%d",&a,&b,&c); AddEdge(a,b,c); AddEdge(b,a,c); g[i]=1; } g[n]=1; DFS(); __int64 ans=0; for(int i=1;i<ptr;i+=2){ int m=min(g[tree[i].to],g[tree[i+1].to]); ans+=2*min(n-m,m)*(__int64)tree[i].dix; } printf("Case #%d: %I64d\n",cas++,ans); } return 0;}
- 【树形DP】 HDU 4118 Holiday's Accommodation
- hdu 4118 Holiday's Accommodation 树形dp
- hdu 4118 Holiday's Accommodation 树形dp
- HDU 4118--Holiday's Accommodation(树形dp)
- HDU 4118 Holiday's Accommodation(树形DP)
- hdu 4118 Holiday's Accommodation 思维+树形dp
- 树形DP(Holiday's Accommodation HDU4118)
- hdu4118 Holiday's Accommodation(树形dp)
- HDU 4118 Holiday's Accommodation
- HDU-4118-Holiday's Accommodation
- hdu 4118 Holiday's Accommodation
- HDU - 4118 Holiday's Accommodation
- hdu Holiday's Accommodation
- Holiday's Accommodation HDU
- hdu 4118 Holiday's Accommodation 树上统计
- hdu Holiday's Accommodation dfs
- HDOJ 4118 Holiday's Accommodation
- hdu 4118 Holiday's Accommodation 2011 Asia ChengDu Regional Contest
- HDU3371 Connect the Cities 解题报告--prim
- POJ 3678 - Katu Puzzle 比较典型的构图2-sat...求是否有可行解
- 系统二级运维之业务单据错误处理
- 【jquery mobile笔记二】jquery mobile调用豆瓣api示例
- hdu 1712 ACboy needs your help (分组背包)
- 【树形DP】 HDU 4118 Holiday's Accommodation
- 跟我学ios 开发 (一)
- 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10()
- HDU1233 还是畅通工程 解题报告--prim
- hdu 3049 Data Processing(扩展欧几里德求逆元)
- poj3181(完全背包)
- win7用户文件夹转移到D盘
- Cocos2d-iphone 为sprite添加双击的事件响应
- WIN7 CDC类 虚拟串口驱动无法安装的解决办法