POJ 2486_Apple Tree
来源:互联网 发布:app打印软件下载 编辑:程序博客网 时间:2024/06/06 20:44
Apple Tree
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 10898 Accepted: 3661
Description
Wshxzt is a lovely girl. She likes apple very much. One day HX takes her to an apple tree. There are N nodes in the tree. Each node has an amount of apples. Wshxzt starts her happy trip at one node. She can eat up all the apples in the nodes she reaches. HX is a kind guy. He knows that eating too many can make the lovely girl become fat. So he doesn’t allow Wshxzt to go more than K steps in the tree. It costs one step when she goes from one node to another adjacent node. Wshxzt likes apple very much. So she wants to eat as many as she can. Can you tell how many apples she can eat in at most K steps.
Input
There are several test cases in the input
Each test case contains three parts.
The first part is two numbers N K, whose meanings we have talked about just now. We denote the nodes by 1 2 ... N. Since it is a tree, each node can reach any other in only one route. (1<=N<=100, 0<=K<=200)
The second part contains N integers (All integers are nonnegative and not bigger than 1000). The ith number is the amount of apples in Node i.
The third part contains N-1 line. There are two numbers A,B in each line, meaning that Node A and Node B are adjacent.
Input will be ended by the end of file.
Note: Wshxzt starts at Node 1.
Each test case contains three parts.
The first part is two numbers N K, whose meanings we have talked about just now. We denote the nodes by 1 2 ... N. Since it is a tree, each node can reach any other in only one route. (1<=N<=100, 0<=K<=200)
The second part contains N integers (All integers are nonnegative and not bigger than 1000). The ith number is the amount of apples in Node i.
The third part contains N-1 line. There are two numbers A,B in each line, meaning that Node A and Node B are adjacent.
Input will be ended by the end of file.
Note: Wshxzt starts at Node 1.
Output
For each test case, output the maximal numbers of apples Wshxzt can eat at a line.
Sample Input
2 1 0 111 23 20 1 21 21 3
Sample Output
112#include<stdio.h>#include<string.h>int n,k,a[201],c,d,to[401],head[401],next[401],idx,f[2][201][201],ans;int max(int x,int y){if(x>y)return x;return y;}void dfs(int from,int p){for(int i=head[p];i;i=next[i]){if(to[i]!=from){dfs(p,to[i]);for(int j=k;j>=1;j--)for(int z=1;z<=j;z++){f[0][p][j]=max(max(f[0][p][j],f[1][p][j-z]+f[0][to[i]][z-1]),f[0][p][j-z]+f[1][to[i]][z-2]);f[1][p][j]=max(f[1][p][j],f[1][p][j-z]+f[1][to[i]][z-2]);} }}}int main(){while(scanf("%d%d",&n,&k)!=EOF){idx=0;memset(f,0,sizeof(f)); memset(head,0,sizeof(head));for(int i=1;i<=n;i++){scanf("%d",&a[i]);for(int j=0;j<=k;j++)f[0][i][j]=f[1][i][j]=a[i];}for(int i=1;i<n;i++){scanf("%d%d",&c,&d);++idx;to[idx]=d;next[idx]=head[c];head[c]=idx;++idx;to[idx]=c;next[idx]=head[d];head[d]=idx;}dfs(0,1);printf("%d\n",max(f[0][1][k],f[1][1][k]));}}
阅读全文
3 0
- POJ 2486_Apple Tree
- poj 3321_Apple Tree_树状数组+dfs
- poj 3321_Apple Tree_线段树
- Apple Tree POJ 2486
- poj 2486 apple tree
- POJ 2486 Apple Tree
- poj 2486 Apple Tree
- POJ 2486 Apple Tree
- POJ 2486 Apple Tree
- poj 2486 apple tree
- POJ 2486 Apple Tree
- POJ 2486 Apple Tree
- POJ 2486 Apple Tree
- poj 2486 Apple Tree
- POJ 2486 Apple Tree
- POJ 2486--Apple Tree
- POJ 2486 Apple Tree
- poj 2486 Apple Tree
- void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
- box-flex实现三等分布局
- Boost电路调试经验总结
- HDU6097-Mindis
- Noip2014 Day2 T3 解方程(数论+取模运算)
- POJ 2486_Apple Tree
- Wireshark过滤掉TCP重传数据包
- 单例模式写法
- Keras 示例代码 02 antirectifier.py 结果演示及代码解析
- 问题 : 只包含因子2 3 5的数
- JAVA企业面试题精选 Servlet和JSP 31-40
- JavaScript中获取样式值的方法总结
- 钉钉平台接入文档
- MySQL系列—建索引的几大原则和使用索引优化查询