首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
hdu 1011 Starship Troopers
时间:
2015-03-20 20:32:21
阅读:
113
评论:
0
收藏:
0
[点我收藏+]
标签:
/*
树形dp
题意:
给出一颗树,每个节点都有敌人,消灭敌人后会给报酬,自己的士兵一个能消灭20个,从节点1开始,如果根节点消灭,子节点就不消灭
给出一个n表示有n个节点,m表示自己士兵的数量,接下来n行,表示n个节点敌人的数量和报酬,接下来n-1行是树的情况
*/
#include<stdio.h>
#include<string.h>
const int maxn = 105;
int N,M,first[maxn],next[maxn<<1],bug[maxn],fra[maxn],ne,flag[maxn],dp[maxn][maxn];//dp[i][j]表示以i为跟节点的子树安排j个士兵的最大价值,first,next是邻接表,bug,fra是节点的敌人和报酬,
struct Edge
{
int u,v;
void set(int u,int v)
{
this->u=u;
this->v=v;
}
}ed[maxn<<1];
void add_Edge(int u,int v)
{
ed[ne].set(u,v);
next[ne]=first[u];
first[u]=ne++;
}
void dfs(int u)
{
flag[u]=1;
int temp=(bug[u]+19)/20;
for(int i=temp;i<=M;i++) dp[u][i]=fra[u];
for(int i=first[u];i+1;i=next[i])
{
int v=ed[i].v;
if(flag[v]) continue;
dfs(v);
for(int j=M;j>=temp;j--)//因为是一直在一次for循环中,一直都是u,和v,所以要想0,1背包的一维一样从大的开始,这样就避免了重复装
{
for(int k=1;k<=j-temp;k++)
if(dp[u][j]<dp[u][j-k]+dp[v][k])//因为不管u的其他子节点是否排了人,当前这个点v一定没有排人
dp[u][j]=dp[u][j-k]+dp[v][k];
}
}
}
int main()
{
while(scanf("%d%d",&N,&M)!=EOF&&(N+1))
{
for(int i=1;i<=N;i++)
scanf("%d%d",&bug[i],&fra[i]);
ne=0;
memset(first,-1,sizeof(first));
memset(dp,0,sizeof(dp));
memset(flag,0,sizeof(flag));
for(int i=0;i<N-1;i++)
{
int u,v;
scanf("%d%d",&u,&v);
add_Edge(u,v);
add_Edge(v,u);
}
if(M==0)
{
printf("0\n");
continue;
}
dfs(1);
printf("%d\n",dp[1][M]);
}
return 0;
}
hdu 1011 Starship Troopers
标签:
原文地址:http://blog.csdn.net/u013491149/article/details/44496353
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!