Holiday's Accommodatio UVA
来源:互联网 发布:单片机自动门源程序 编辑:程序博客网 时间:2024/06/08 10:47
针对每一条边,假设这条边的父节点为v,字节点为u,假设以u为节点的子树的节点个数为k,由于总的节点个数为N,那么剩余的节点的个数也就是N-k,那么对于这一条边而言,要么是k个节点都出去,要么是N-k个节点都进来,为了满足题意需要取二者的最下值,也就是经过这条边的次数,乘以权值,对其他的边也同样处理即可,最后将结果都加起来,具体实现见如下代码:
#include<iostream>#include<vector>#include<string>#include<set>#include<stack>#include<queue>#include<map>#include<algorithm>#include<cmath>#include<iomanip>#include<cstring>#include<sstream>#include<cstdio>#include<deque>#include<functional>using namespace std;class Node{public:int ind, weight;};vector<Node> G[100010];long long res;int amount[100010];class Solve{public:int N;void Init(){memset(amount,0,sizeof(amount));cin >> N;res = 0;for (int i = 1; i <= N; i++)G[i].clear();for (int i = 1; i < N; i++){int a, b, c;cin >> a >> b >> c;Node temp;temp.ind = b, temp.weight = c;G[a].push_back(temp);temp.ind = a;G[b].push_back(temp);}}void dfs(int cur,int fa,int w){if (G[cur].size() == 1 && G[cur][0].ind == fa){amount[cur] = 1;res += w;return;}amount[cur] = 1;for (int i = 0; i < G[cur].size(); i++){if (G[cur][i].ind != fa){dfs(G[cur][i].ind, cur, G[cur][i].weight);amount[cur] += amount[G[cur][i].ind];}}res += (long long)min(amount[cur], N - amount[cur])*(long long)w;}long long Deal(){Init();dfs(1,0,0);return res;}};int main(){int T;cin >> T;Solve a;for (int i = 1; i <= T; i++){cout << "Case #" << i << ": "<<(a.Deal()<<1)<<endl;}return 0;}
阅读全文
0 0
- Holiday's Accommodatio UVA
- UVA 1669 && HDU 4118 Holiday's Accommodatio (思路题目--统计子树结点 )
- hdu Holiday's Accommodation
- Regional_2011_H Holiday's Accommodation
- Holiday's Accommodation
- Holiday's Accommodation HDU
- UVa 12372 - Packing for Holiday
- HDU 4118 Holiday's Accommodation
- HDU-4118-Holiday's Accommodation
- hdu 4118 Holiday's Accommodation
- hdu Holiday's Accommodation dfs
- HDOJ 4118 Holiday's Accommodation
- HDU - 4118 Holiday's Accommodation
- holiday
- 【树形DP】 HDU 4118 Holiday's Accommodation
- 树形DP(Holiday's Accommodation HDU4118)
- hdu 4118 Holiday's Accommodation 树上统计
- hdu4118 Holiday's Accommodation(树形dp)
- 广播
- git+maven自动化部署tomcat java项目
- 合并排序
- 深入浅出 Python Generators
- hdu 2159 FATE(二维背包+完全背包)
- Holiday's Accommodatio UVA
- Python 起步-list的小总结
- 初识maven
- 171105-初步自学内联函数和重载函数【连续第十三天】
- 设计模式解决的问题
- MATLAB散点图、表面图、等高线图绘制命令
- jmeter初用错误汇总
- 矩阵的秩与迹
- 洛谷 P3941 入阵曲