hdu 4616 树形dp

【国民技术N32项目移植】基于 Windows 的 ARM GCC 开发环境 阅读详情

这是一道比较特别的树形dp题目。。。。。。。或许只是我自己这样认为的吧。

1.假如u为根节点,v1,v2,v3是其子节点,v1与v2可以连成一条链,不仅仅只是父节点与子节点可以连成一条链(其实就是可以任意选取点开始)。

2。题目要求中了几个陷阱就要停止,与“最多能中的陷阱不超过n”这个条件有较大不同,要考虑所选取链头尾是否有陷阱(当链的总陷阱数达到n时)。

#include <cstdio>
#include <cstdlib>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxn 50005
const long long INF=1LL<<61;

int n,c;
vector<int> e[maxn];
int val[maxn],trap[maxn];
long long int ans,dp[maxn][4][2];//第一维表示节点,第二维表示中了陷阱的个数,第三维表示起点是否有陷阱,1,代表有,0代表没有
void dfs(int u,int p)
{
    int s=e[u].size();
    dp[u][trap[u]][trap[u]]=val[u];
    ans=max(ans,dp[u][trap[u]][trap[u]]);
    for (int i=0;i<s;i++)
    {
        int v=e[u][i];
        if (v==p) continue;
        dfs(v,u);
        for (int j=0;j<=c;j++)
            for (int k=0;k+j<=c;k++)
            {
                if (k+j<=c) ans=max(ans,dp[u][j][1]+dp[v][k][1]);
                if (k+j<c)  ans=max(ans,dp[u][j][0]+dp[v][k][0]);
                if (j!=c)   ans=max(ans,dp[u][j][0]+dp[v][k][1]);
                if (k!=c)   ans=max(ans,dp[u][j][1]+dp[v][k][0]);    //这几个转移表示在两个子节点选取链,当然要避免dp[x][c][0]的情况出现。
            }
        for (int j=0;j<c;j++)
        {
            dp[u][j+trap[u]][0]=max(dp[u][j+trap[u]][0],dp[v][j][0]+val[u]);
            dp[u][j+trap[u]][1]=max(dp[u][j+trap[u]][1],dp[v][j][1]+val[u]);//由子节点更新父节点。
        }
        if (!trap[u]) dp[u][c][1]=max(dp[u][c][1],dp[v][c][1]+val[u]);
    }
}
int main()
{
    int cas,u,v;
    scanf("%d",&cas);
    while (cas--)
    {
        scanf("%d%d",&n,&c);
        for (int i=0;i<n;i++) e[i].clear();
        for (int i=0;i<n;i++)
            scanf("%d%d",&val[i],&trap[i]);
        for (int i=1;i<n;i++)
        {
            scanf("%d%d",&u,&v);
            e[u].push_back(v); e[v].push_back(u);
        }
        ans=0;
        for (int i=0;i<n;i++)
            for (int j=0;j<4;j++)
                for (int k=0;k<2;k++)
                    dp[i][j][k]=-INF;
        dfs(0,-1);
        printf("%I64d\n",ans);
    }
    return 0;
}

【收藏向】模拟电子技术超强知识点总结 20小时不挂科 模电真的有难度的一门课,一定要好好学… 用的教材是华科康华光版,其他版本教材也可参考,内容是差不多的。 话不多说直接上思维导图干货(后有思维导图高清原图链接) 1 绪论 2 运算放大器 3 二极管及其基本电路 4 场效应管及其放大电路 5 双极结型三极管及其放大电路 三种组态总结看不清,给个特写 发现虽然csdn上传的是原图,但是显示的图片不是特别清晰,在此贴出B站知乎地址,第五章之后的内容都在上面,还可以查看原图 ———————————————————— B站专栏地址(可以点击查看原图) htt 阅读详情

相关推荐

ICESat-2数据下载的两种方法

ICESat-2数据下载

weixin_46341898的博客 2899

树形dp hdu-4616-Game

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4616 题目大意: 给一棵树,每个节点有一个礼物值及是否有trick,每来到一个节点必须拿礼物,如果该节点有trick则浪费一个抗trick机会,如果一开始有C次抗trick的机会,问最多可以拿多少值的礼物,机会用完后就结束了。访问了的节点不能再次访问。 解题思路: 树形dp啊。 树形

cc_again的专栏 2540

从零开始:EAS2+Elmo+Maxon电机调试全流程(含电流环优化技巧)

本文详细解析了从零开始搭建基于EAS2软件、Elmo驱动器和Maxon电机的运动控制系统的全流程。内容涵盖硬件连接规范、EAS2基础配置、核心的电流环模型辨识与手动优化技巧,以及速度环、位置环的搭建与调试策略,旨在帮助工程师构建稳定、高性能的伺服控制核心。

i0j1k2l3m的博客 502

HDU 4616 Game 树形DP

Problem Description   Nowadays, there are more and more challenge game on TV such as ‘Girls, Rush Ahead’. Now, you participate int a game like this. There are N rooms. The connection of rooms is like ...

日拱一卒,功不唐捐 2842

RS485/CAN总线防护电路设计:TVS选型与ESD防护实战解析

本文深入解析了RS485与CAN总线防护电路设计中的TVS选型与ESD防护实战技巧。针对工业现场常见的静电放电、浪涌等干扰,文章详细阐述了TVS管关键参数的选择、多级防护体系的构建,并特别强调了在隔离电路设计中地回路处理的重要性,帮助工程师设计出更可靠的通信接口。

metaverse5vr的博客 385

CTF实战:从ECDSA签名漏洞到flag获取

本文详细解析了ECDSA签名算法在CTF比赛中的实战应用,重点探讨了随机数重用和参数泄露等常见漏洞。通过PWNHUB六月赛的例题,展示了如何从签名数据中恢复私钥并获取flag,同时提供了防御措施和实战技巧,帮助参赛者提升解题能力。

weixin_42706667的博客 275

HDU 4616 Game (搜索)、(树形dp)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4616 这道题目数据可能比较弱,搜索都可以AC,但是不敢写,哎…… 搜索AC代码: #include #include #include #include #include #include #include #include #include #include

lamborghini1993 1240

康耐视visionpro-CogBlobTool工具详细说明

康耐视visionpro-CogBlobTool工具详细说明

视觉人机器视觉的博客 1724

HDU 4616 Game(树形dp,两遍dfs)

题目链接: HDU 4616 Game 题意: 给一个nn个节点和n−1n-1条边的树。每个节点代表一个房间,每个房间都放有一个价值为正的礼物,有的房间有陷阱,有的房间没陷阱,最多可以经过CC个陷阱(第CC个陷阱时就应该停止),可以从任意的房间开始行走,每个房间只能走一次,求获得的礼物的最大价值和? 数据范围:n≤5∗104,1≤C≤3n\leq 5*10^{4},1\leq C \le

ramay7 649

保研考研机试攻略:python笔记(4)

保研考研机试攻略:python笔记(4)二分法+最大公约数+最小公倍数+素数判断+幂次方mod方法+匹配问题+哈希算法+哈夫曼编码+二叉树

qq_63349644的博客 1096

基于Xilinx K7-410T的高速DAC之AD9129开发笔记(一)

引言:从本文开始,我们介绍下项目中设计的并行LVDS高速DAC接口设计,包括DAC与FPGA硬件接口设计、软件设计等。项目设计高速DAC采用了ADI公司的AD9129,该芯片最大更新速率5.7Gsps,该芯片在宽带通信应用、LTE、雷达信号产生、干扰机等领域有广泛应用。

FPGA_Designer 2533

hdu 4616 Game 树形dp

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4616 题意 有n个房间构成的一棵树,每个房间都有一定价值的礼物,价值可能不相同,有礼物的同时还可能有陷阱,而且每个房间不能重复经过,如果掉入陷阱C次或者没有路可以走了那么游戏结束,求从任意点出发能获得礼物的最大价值。 解题思路 树形dp。 dp[i][j][0] 表示从i的子树上某点出发经

呼,是出一口气;吸,是争一口气! 844

使用 Python 爬取 YouTube 视频评论(弹幕)

✅ 如何使用 Python 调用 YouTube Data API v3。✅ 如何爬取指定视频的所有评论信息。✅ 如何对评论数据进行初步分析与可视化。✅ 如何扩展功能,实现评论回复获取和多视频批量爬取。

2201_76125261的博客 643

树形dp--hdu4616

B - Game Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4616 Description   Nowadays, there are more and more challenge game o

猿的进化 392

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

hdu 4616 Game(树形dp)

题目链接:hdu 4616 Game解题思路dp维护不以trap为起点的最优,ed维护以trap为起点的最优。注意,当前节点如果不为trap的话,不能从dp[K]转移过来。代码#include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int maxn = 50005; typedef lon

不慌不忙、不急不躁 819

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

#动态规划# hdu-4616-Game(树形dp)

这个题,大佬说是水题,对我这种菜鸡来说,看了好久才懂。。。。 #include <iostream> #include <cstring> #include <stdio.h> #include <vector> #define inf 0x3f3f3f3f using namespace std; /* ①如果k==c,那么起点和终...

qq_37967797的博客 334

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

hdu4616 树形DP

多校第二场了,被打击的遍体鳞伤啊,比赛结束的时候看了这题,一眼就想到树形DP,真正写起来才发现原来这么麻烦,状态合并有一部分要去局部最优,只好加了一维状态记录当前节点往下i次trap且以trap值为1的节点结尾的最优值。题目不算很难,细节调起来很纠结。

丿Smilē 丶晨星灬 1252

HDU 4616 Game(树形dp)

题意: 给定N≤5×104一棵无根树,每个节点个权值,且可能有陷阱给定N\le 5\times 10^4一棵无根树, 每个节点个权值, 且可能有陷阱 现在从任意一个节点出发,如果无路可走或者踩到C≤3个陷阱就停止了现在从任意一个节点出发, 如果无路可走或者踩到C\le3个陷阱就停止了 求能获得最大的权值和求能获得最大的权值和 分析: 树形dp,经典题,蓝儿我并不会做树形dp, 经

TaoSama's Microcosm 631

HDU 4616 Game(树形DP)

【题意】一颗有n个节点的树,每个节点有val值和c(有无陷阱)值,给出最大可踩陷阱数m。在树中任取一点作为起点,经过某点就取得该点的val值,踩到第m个陷阱后马上停止,而且不能走已走过的点,求所能获得的最大val总值。 【解题方法】树形dp,经典题,虽然我不会。 dp[u][i][0/1]:=以u为根的子树中,从有无陷阱的节点出发,且经过i个陷阱的最大权值和 我们来考虑下ans的构成,枚举

I good vegetable a! 855

HDU 4616 Game (树形DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4616 题意:一颗有n个节点的树,每个节点有val值和c(有无陷阱)值,给出最大可踩陷阱数m。在树中任取一点作为起点,经过某点就取得该点的val值,踩到第m个陷阱后马上停止,而且不能走已走过的点,求所能获得的最大val总值。 思路:比赛时对每个点作为起点写了个爆搜,队友说如果某点u相邻的...

Tongqi 595

hdu4616 树形dp

Game Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 2038    Accepted Submission(s): 671 Problem Description   Nowadays, there are

猿的进化 493

hdu 4616 树形DP

http://acm.hdu.edu.cn/showproblem.php?pid=4616 转载自http://blog.youkuaiyun.com/tri_integral/article/details/9499037 题意: 给出一棵树,树上每个节点都有权值,某些点有陷阱。可以任选起点,每个点只能走过一次,如果走到某点不能再走或者走到某个点恰好走了C个陷阱就停在该点,问最后路径上点权之和能得...

weixin_33785972的博客 102

hdu4616 Game 【树形dp】

题解详见:http://blog.youkuaiyun.com/martinue/article/details/51025232 分析透彻。#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cmath> #include<vector> #include<qu

cdsszjj的博客 373

HDU 4616 Game 树形DP 搜索

题目描述:Description   Nowadays, there are more and more challenge game on TV such as ‘Girls, Rush Ahead’. Now, you participate int a game like this. There are N rooms. The connection of rooms is like a t

喵头鹰的博客 423

hdu4616(树形dp)

链接:点击打开链接 题意:给出一个树上每个节点的权值和是否有陷阱,最多能遇到m个陷阱,当遇到第m个陷阱时必须停下来,求获得的最大权值使多少 代码:#include #include #include #include #include #include using namespace std; vector G[50005]; int n,m,ans; int dp[50005][

stay_accept的专栏 626

【HDU】4616 Game 树型DP

传送门:【HDU】4616 Game

poursoul 1182
上一篇: hdu 5106 hdu 5435 数位dp
下一篇: hdu 4614 线段树+二分
labrother
博客等级 码龄11年 2粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值