博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zoj 3626 Treasure Hunt I(树形DP+分组背包)
阅读量:4035 次
发布时间:2019-05-24

本文共 834 字,大约阅读时间需要 2 分钟。

1、

2、题目大意:

有n个城镇,他们之间有路相通,知道每条路需要走的天数,每个城镇的价值,现在一个人想要从k点出发,在m天内去访问别的城镇,但是必须在m天之前返回k点,求可以获得的最大价值

dp[i][j]表示从i点出发走j天获得的最大价值,需要往返,注意m/=2即可

状态转移方程

dp[u][j]=max(dp[u][j],dp[u][j-k-w[u][v]]+dp[v][k]);

3、AC代码:

#include
#include
#include
#include
using namespace std;#define N 105int val[N];vector
adj[N*2];int w[N][N];int dp[N][N],vis[N],m;void dfs(int u){ vis[u]=1; dp[u][0]=val[u]; for(int i=0;i
=0;j--) { for(int k=0;k<=j-w[u][v];k++) { dp[u][j]=max(dp[u][j],dp[u][j-k-w[u][v]]+dp[v][k]); } } } }}int main(){ int n,a,b,c,k; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) adj[i].clear(); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { scanf("%d",&val[i]); dp[i][0]=val[i]; } for(int i=1;i
ans) ans=dp[k][i]; } printf("%d\n",ans); } return 0;}

 

转载地址:http://orddi.baihongyu.com/

你可能感兴趣的文章
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>
Maven跳过单元测试的两种方式
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
[leetcode BY python]1两数之和
查看>>
微信小程序开发全线记录
查看>>
Centos import torchvision 出现 No module named ‘_lzma‘
查看>>
PTA:一元多项式的加乘运算
查看>>
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
Django 的Error: [Errno 10013]错误
查看>>
机器学习实战之决策树(一)
查看>>
机器学习实战之决策树二
查看>>