hdu5242(贪心&记忆化搜索)
来源:互联网 发布:网络维护58同城 编辑:程序博客网 时间:2024/06/09 23:53
先跑一遍dfs处理出每个点到跟能获得的最大值。然后按照这个值排序,按照这个顺序再去跑第二遍dfs算出这个点 到跟的价值,用过的点直接返回0,把结果保存在数组里,再次排序,取前K个就是答案。
#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using namespace std;const int maxn = 100000+10;vector<int>G[maxn];struct node{ int id; long long len; bool operator < (const node& T) const{ return len>T.len; } node(){}}p[maxn];int vis[maxn];long long w[maxn];long long dfs1(int u){ if(vis[u]) return p[u].len; vis[u] = 1; int len = G[u].size(); p[u].len = w[u]; for(int i=0;i<len;i++) { int v = G[u][i]; p[u].len += dfs1(v); } return p[u].len;}long long c[maxn];long long dfs2(int u){ if(vis[u]) return 0; vis[u] = 1; long long ret = w[u]; int len = G[u].size(); for(int i=0;i<len;i++) { int v = G[u][i]; ret += dfs2(v); } return ret;}int main(){ int cases,n,k,u,v,t=1; scanf("%d",&cases); while(cases--) { scanf("%d%d",&n,&k); for(int i=0;i<=n;i++) G[i].clear(); for(int i=1;i<=n;i++) scanf("%I64d",&w[i]); for(int i=1;i<n;i++) { scanf("%d%d",&u,&v); G[v].push_back(u); } memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++) p[i].id = i; for(int i=1;i<=n;i++) if(!vis[i]) dfs1(i); sort(p+1,p+1+n); memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++) c[i] = dfs2(p[i].id); sort(c+1,c+1+n); long long ans=0; for(int i=n,j=0;j<k&&i>=1;j++,i--) ans += c[i]; printf("Case #%d: ",t++); printf("%I64d\n",ans); } return 0;}
阅读全文
0 0
- hdu5242(贪心&记忆化搜索)
- HDU5242.Game——贪心
- HDU5242:Game(树上贪心)
- uva 607 - Scheduling Lectures(贪心+记忆化搜索)
- UVA - 607 Scheduling Lectures(贪心+记忆化搜索)
- zoj 3211 dream city 贪心 dp和记忆化搜索
- NOIP模拟题 2016.10.13 [贪心] [记忆化搜索]
- HDU 2037 (贪心或记忆化搜索)
- hdu5242 上海邀请赛 优先队列+贪心
- hdu5242——Game(dfs贪心)
- 记忆化搜索例题
- PKU1088---记忆化搜索
- PKU1088 记忆化搜索
- HDU1078 记忆化搜索
- HDU1501 记忆化搜索
- HDU1978 记忆化搜索
- poj1661 记忆化搜索
- zoj1107记忆化搜索
- 51nod 1007 正整数分组(背包)
- 关于eclipse启动出错以及code:blocks无法运行的问题
- Java中的变量
- leetcode 341. Flatten Nested List Iterator
- 设计模式-原型模式
- hdu5242(贪心&记忆化搜索)
- C++笔记——类的静态成员和静态成员函数
- JVM (PART VIII)HotSpot的各种收集器和常见组合
- 设计模式的基础——类图以及类与类之间的关系
- dedecms判断栏目是否有下级菜单
- 【hibernate】配置hbm2ddl.auto属性
- Elasticsearch 5 Ik+pinyin分词配置详解
- Java编程之Annotation全解析
- gtk图形界面编程day02