[JZOJ 5819] 大逃杀
题意:求一个树上背包~~
先贴代码存一下,好像打挂了。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 400;
const int INF = 0x3c;
int dp[maxn][maxn][3];
inline int read() {
int q=0,f=1;char ch = getchar();
while(!isdigit(ch)){
if(ch=='-')f=-1;ch=getchar();
}
while(isdigit(ch)){
q=q*10+ch-'0';ch=getchar();
}
return q*f;
}
int cnt;
int head[maxn << 1];
int n,m,t;
struct edge {
int to;
int nxt;
int w;
}e[maxn << 1];
int ans;
inline void Add_edge(int u,int v,int w) {
e[++cnt].to = v;
e[cnt].nxt = head[u];
head[u] = cnt;
e[cnt].w = w;
e[++cnt].to = u;
e[cnt].nxt = head[v];
head[v] = cnt;
e[cnt].w = w;
}
int s[maxn];
int cost[maxn];
inline void dfs(int x,int fa) {
for(int i = 0;i <= t; ++i) {
if(i < s[x]) {
dp[x][i][0] = dp[x][i][1] = dp[x][i][2] = -INF;
}
else {
dp[x][i][0] = dp[x][i][1] = dp[x][i][2] = cost[x];
}
}
for(int i = head[x];i;i=e[i].nxt) {
int y = e[i].to;
if(y != fa) {
dfs(y,x);
for(int j = t;j >= e[i].w; --j) {
for(int k = 0;k <= j - e[i].w; ++k) {
if(j - k >= 2 * e[i].w) {
dp[x][j][2] = max(dp[x][j][2],dp[y][k][0] + dp[x][j - 2 * e[i].w - k][2]);
}
if(j - k >= 2 * e[i].w) dp[x][j][2] = max(dp[x][j][2],dp[y][k][2] + dp[x][j - k - 2 * e[i].w][0]);
dp[x][j][2] = max(dp[x][j][2],dp[y][k][1] + dp[x][j - k - e[i].w][1]);
if(j - k >= 2 * e[i].w) {
dp[x][j][1] = max(dp[x][j][1],dp[y][k][0] + dp[x][j - k - 2 * e[i].w][1]);
}
dp[x][j][1] = max(dp[x][j][1],dp[y][k][1] + dp[x][j - k - e[i].w][0]);
if(j - k >= 2 * e[i].w) {
dp[x][j][0] = max(dp[x][j][0],dp[y][k][0] + dp[x][j - k - 2 * e[i].w][0]);
}
}
}
}
}
}
int main () {
freopen("toyuq.in","r",stdin);
freopen("toyuq.out","w",stdout);
n = read(),t = read();
for(int i = 1;i <= n; ++i) {
cost[i] = read();
}
for(int i = 1;i <= n; ++i) {
s[i] = read();
}
for(int i = 1;i < n; ++i) {
int x = read(),y = read(),z = read();
Add_edge(x,y,z);
}
dfs(1,0);
for(int i = 1;i <= n; ++i) {
ans = max(ans,dp[i][t][2]);
}
printf("%d\n",ans);
return 0;
}
[JZOJ 5819] 大逃杀的更多相关文章
- 绝地求生大逃杀BE启动失败,应用程序无法正常启动
今日更新绝地求生大逃杀后部分客户反馈绝地求生点击启动提示BE安装,应用程序无法启动 问题原因:经过排查发现,客户开启过超级工作站运行过游戏,在系统镜像包中保留了旧版的BE服务,致使新版BE无法安装,冲 ...
- 《绝地求生大逃杀》BE错误怎么办 BE服务未正常运行及安装失败解决方法
<绝地求生大逃杀>BattlEye Launcher是游戏的反作弊程序,也是启动过程中做容易出现错误的,今天小编带来“爆锤吧务”分享的<绝地求生大逃杀>BE服务未正常运行及安装 ...
- 洗礼灵魂,修炼python(41)--巩固篇—从游戏《绝地求生-大逃杀》中回顾面向对象编程
声明:本篇文章仅仅以游戏<绝地求生>作为一个参考话题来介绍面向对象编程,只是作为学术引用,其制作的非常简易的程序也不会作为商业用途,与蓝洞公司无关. <绝地求生>最近很火,笼络 ...
- 大逃杀(树上dp)
这道题和宝藏差不多吧,转移的时候比较麻烦的. 代码中分量很多种情况. h更新比较麻烦 这两幅图表示了双边更新中3,4连个h更新,下面比较好理解的吧. #include<cstring> # ...
- uSurvival 1.41多人在线生存逃杀吃鸡类游戏源码
uSurvival - the new Multiplayer Survival Asset from the creator of uMMORPG. Features:* Kill Zombies ...
- Movies
码头风云欲望号街车 不可思议的收缩人 The Incredible Shrinking Man (1957) 风之谷 西域威龙 对话 天地无限 现代启示录 黑暗之心 Hearts of Darknes ...
- ue4构建光照失败问题与解决
不知从哪天开始,我的ue4.13就突然无法成功构建光照了, 症状为:虽然swarm连接到了100%,然而之后就卡住一动不动,一看看log是连接tcp什么agent什么失败的. 虽然把所有物体都设置成非 ...
- 3D位置语音,引领吃鸡游戏体验升级
欢迎大家前往云加社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯游戏云 导语:在刚刚结束的首届腾讯用户开放日上,腾讯音视频实验室带着3D位置音效解决方案,向所有用户亮相,为用户提供360度立体空间的 ...
- Software Engineering-HW1
title: Software Engineering-HW1 date: 2017-09-13 15:41:13 tags: HW --- 阅读随笔 在<徐宥:掉进读书的兔子洞>里面, ...
随机推荐
- Windows NtQueryInformationProcess()
{ https://www.orcode.com/article/Processes_20126324.html } { 或代码 文章 编程通用 线程,进程及IPC 与NtQueryInformati ...
- EcShop二次开发学习方法和Ecshop二次开发必备基础
ecshop二次开发学习方法 近年来,随着互联网的发展,电子商务也跟着一起成长,B2B,C2C,B2C的电子商务模式也不断的成熟.这时催生出了众多电子商务相关的php开源产品.B2C方面有Ecshop ...
- Delphi 窗体函数 ShowScrollBar 控制滚动条
API函数 函数来源:FUNCTION ulong ShowScrollBar(ulong hwnd,ulong wBar,ulong bShow) LIBRARY "user32.dll& ...
- PHP FILTER_SANITIZE_URL 过滤器
定义和用法 FILTER_SANITIZE_URL 过滤器删除字符串中所有非法的 URL 字符. 该过滤器允许所有的字母.数字以及 $-_.+!*'(),{}|\^~[]`">< ...
- PHP ftp_close() 函数
定义和用法 ftp_close() 函数关闭 FTP 连接. 语法 ftp_close(ftp_connection) 参数 描述 ftp_connection 必需.规定要关闭的 FTP 连接. 实 ...
- 深入理解js——构造函数的继承
看了阮一峰的网络日志(http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html),记录一下构 ...
- 数学思维——cf1244C
可惜cf不能用int128,不然这个题就是个exgcd的板子题 这是exgcd的解法,但是只用ll的话会溢出 #include<bits/stdc++.h> using namespace ...
- 【UR #2】跳蚤公路
[UR #2]跳蚤公路 参照yjc方法.也就是地铁环线那个题. 求每个点不在负环内的x的取值范围.然后所有1到j能到i的j的范围取交.得到答案. 每个边形如kx+b的直线,每个环也是 每个点不在负环内 ...
- Python语法基础03(if语句,while循环与for循环)
if语句:语法:单分支if 判断条件:语句块 执行过程:首先执行判断条件,当条件成立则执行判断条件下面的语句块,若条件不成立,则不执行 双分支if 判断条件:语句块1else:语句块2执行过程: 首先 ...
- jeecg随笔 -- 实体关联属性的设计
转载:https://www.iteye.com/blog/1868620 在jeecg 里 ,是根据数据库生成实体的,很多关联关系需要自己进行进一步整理才能满足我们的业务需求 例如外键关系 由于很多 ...