HDOJ 4616: Game

【AI方案集】个人记忆库型AI智能体终身伴侣方案.docx 这套AI技术方案不走“先堆概念再硬套场景”的老路,而是以业务痛点为锚点,把机器视觉识别、预测性分析、大模型知识赋能等能力拆解成轻量化可落地的功能模块,直接嵌入生产运营的关键环节,既能快速落地见效,又能通过持续的数据迭代逐步放大价值,帮企业在不盲目新增硬件投入的前提下,稳步完成智能化升级,实实在在把AI变成能降本、提效、控风险的生产工具。 立即下载

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4616


题目大意:

有一棵树,每个节点代表一个房间。

每个房间里有一定量的礼物,也有可能会有一个陷阱。

在树上寻找一条路径,使得其最多经过K个陷阱(注意,小朋友从路径的一端出发,当遇到第K个陷阱的时候就会停止),并使得获得的礼物数最大。


算法:

树形DP。

需要注意的是,如果路径上恰好有K个陷阱的话,

那么路径的两端不能都是没有陷阱的房间。

所以在保存状态的时候,需要记录路径的末端有没有陷阱。


代码如下:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<sstream>
#include<cstdlib>
#include<cstring>
#include<string>
#include<climits>
#include<cmath>
#include<queue>
#include<vector>
#include<stack>
#include<set>
#include<map>
#define INF 0x3f3f3f3f
#define eps 1e-8
using namespace std;

const int MAXN=51000;
int d[MAXN][4][2];
int val[MAXN],trap[MAXN];
vector<int>mm[MAXN];
int ans;
int m;

void dfs(int u, int p)
{
    d[u][trap[u]][trap[u]]=val[u];
    for(int i=0; i<mm[u].size(); i++)
    {
        int v=mm[u][i];
        if(v==p)
        {
            continue;
        }
        dfs(v,u);
        for(int j=0; j<=m; j++)
        {
            for(int s1=0; s1<2; s1++)
            {
                for(int k=0; j+k<=m; k++)
                {
                    for(int s2=0; s2<2; s2++)
                    {
                        if(j+k==m&&!(s1||s2))
                        {
                            continue;
                        }
                        if(d[v][j][s1]==-1||d[u][k][s2]==-1)
                        {
                            continue;
                        }
                        ans=max(ans,d[v][j][s1]+d[u][k][s2]);
                    }
                }
            }
        }
        for(int j=0; j+trap[u]<=m; j++)
        {
            for(int s1=0; s1<2; s1++)
            {
                if(j+trap[u]==m&&!(trap[u]||s1))
                {
                    continue;
                }
                if(d[v][j][s1]==-1)
                {
                    continue;
                }
                d[u][j+trap[u]][s1]=(d[u][j+trap[u]][s1]==-1)?d[v][j][s1]+val[u]:max(d[u][j+trap[u]][s1],d[v][j][s1]+val[u]);
            }
        }
    }
    for(int j=0; j<=m; j++)
    {
        for(int s1=0; s1<2; s1++)
        {
            ans=max(ans,d[u][j][s1]);
        }
    }
}

int main()
{
    int cas;
    scanf("%d",&cas);
    while(cas--)
    {
        int n;
        scanf("%d%d",&n,&m);
        for(int i=0; i<n; i++)
        {
            mm[i].clear();
            scanf("%d%d",&val[i],&trap[i]);
        }
        for(int i=1; i<n; i++)
        {
            int u,v;
            scanf("%d%d",&u,&v);
            mm[u].push_back(v);
            mm[v].push_back(u);
        }
        memset(d,-1,sizeof(d));
        ans=0;
        dfs(0,-1);
        printf("%d\n",ans);
    }
    return 0;
}
 




Anaconda离线创建python环境 既然是离线创建python环境,就需要有一个已经创建好的python环境。所以我们有两台win10的机器,分别是A和B。两台机器都安装了anaconda。其中A可以连网,因此我们在A上创建好一个python2.7的环境py27,然后将py27移植(安装)到B上。B连不连网都无所谓。 一、机器上A上创建python2.7的环境py27 有两种方法: 方法1:使用Anaconda的图形界面。首先,点击Environments->Create,然后输入要创建的环境名称"py27",然后选择2.7,如图 阅读详情

相关推荐

PWM调节DCDC参数计算原理

SOC芯片的核电压、GPU电压、NPU电压、GPU电压等,都会根据性能和实际应用场景来进行电压和频率的调整。 即动态电压频率调整DVFS(Dynamic Voltage and Frequency scaling),优化性能和功耗。

电子绿洲的博客 3164

树形dp hdu-4616-Game

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

cc_again的专栏 2540

Keil中搭建自动化单元测试框架Unity

前言:   虽然一些C++的自动化单元测试框架也能用来C语言单元测试,但那样我们编写C语言程序时需要符合C++的标准,这样有一些C的特性是无法使用的,限制C的特性使用不太好,于是找了一个全部用C实现的自动化测试框架。Unity是一个简单且直接的自动化单元测试框架,它由很少的几个文件构成。 搭建环境:   1.从github上下载最新版本的Unity源码,下载链接:https://github...

程序员的自我修炼 3900

HDOJ 4616 - Game/2013多校联合第二场F 树形DP..初始化不能太随意...

题意:                   一个游戏的迷宫是一颗树型结构..树上的点代表了房间..每个房间里宝藏..有些房间里有陷阱..现在开始游戏..咱有C条命..若进入了有trap的房间..就会掉一条命..没有命了就Game Over了...可以从这颗树中任意的点开始沿着边走...问能获得的最多宝藏...         题解:                    练习赛的时候..用2

zzyzzy12 997

论文精读-ReTransformer ReRAM-based Processing-in-MemoryArchitecture for Transformer Acceleration

Transformer已经成为一种流行的深度神经网络(DNN)模型,用于神经语言处理(NLP)应用,并在神经机器翻译、实体识别等方面表现出优异的性能。然而,其在自回归解码器中的规模化点积注意机制在推理过程中带来了性能瓶颈。Transformer也是计算和内存密集型的,需要硬件加速解决方案。

a284365的博客 1922

基于YOLOv11的水果/商品/食堂/蔬菜/饮料/书籍识别与计价系统,前台+后台管理系统

基于YOLOv11的水果/商品/食堂/蔬菜/饮料/书籍识别与计价系统,前台+后台管理系统

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1222

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 tre

MissZhou要努力 564

【WLAN】【基础知识】WIFI那些事儿之信道和频谱(涵盖2.4G、5G、6G,全网最全)

- 从事WIFI相关开发或测试工作,经常要和信道、频宽、频率等打交道,本文仅将平时涉及的2.4G、5G、6G的信道、频宽、频率等做一总结。 - 一图胜万言,本文汇总了工作中经常用到的频谱图,保证全网最全!!! - 本博客地址,https://blog.youkuaiyun.com/qxhgd,欢迎各位关注,转发请注明出处。

一介草民,只为生活。 1万+

2013 多校第二场 hdu 4616 Game

hdu 4616 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4616 题目大意:给你一棵有n个节点的树,编号0~n-1,你先开始可以进入到任意一个节点,每个点都有一定的val,并可能有陷阱,你最多只能碰到 c 个陷阱,到碰到 c 个陷阱时,你马上就 Game Over 了,不能再继续走了,不管后面还有没有陷阱。问你最大能获得的 val 值。 思

沉溺的专栏 1184

华为OD机试真题 新系统 9月20号 【字符串分组求和】

华为OD新系统机试真题【字符串分组求和】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【字符串分组求和】解析。

qq_45776114的博客 625

72、海洋地理信息系统:电子海图的全面解析

本文全面解析了海洋地理信息系统中的电子海图技术,从AIS数据的应用、电子海图数据的存储与显示,到电子导航的发展趋势和S-100通用水文数据模型的推广,系统地阐述了电子海图在现代航海中的核心作用及其未来发展方向。

hhh00的博客 252

ZOJ 3734: LIKE vs CANDLE

题目链接: http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5069 题目大意: 若干微博账户形成了一个转发树(即一个有根树)。 每个账户有自己的价值,每个账户也有自己的态度(赞或蜡烛)。 如果一个账户的态度是“赞”,它的价值就会被加到“赞”的一边,反之亦然。 你可以从“赞”的一边拿出X 的价值

frog的小池塘 2622

duilib 之 事件--bubbled冒泡事件应用、通用点击事件、进入离开事件、XML样式中直接添加事件

1. box 绑定点击事件 ui::Box *pSmallVideoBox = (ui::Box*)FindControl(L"rightBox"); if (pSmallVideoBox) { auto SwitchVideo = [this](ui::EventArgs* param){ m_bSecScreenIsScale = m_bMainScre...

目前打算换一个工作,有招聘windows c++方向的也欢迎联系,北京、济南 最好 973

HDOJ 4582: DFS spanning tree

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4582 题目大意: 给出一个有向图。 这个图的前n-1条边构成这个图的一个以节点1为根节点的DFS树。 T-Simple环的定义是:至多有一条边不在这棵DFS树上的环。 问,至少在图上选中多少条边。才使得每个T-simple环都至少有一条边被选中。 算法: 需注意的是,题目

frog的小池塘 2496

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

CF 341C: Iahub and Permutations

题目链接: http://codeforces.com/contest/341/problem/C 题目大意: 给定一个含有N个位置的序列,某些位置上的数字已经确定,某些位置上的数字没有确定。 求这个序列可能产生多少种错排(a[i] != i)。 算法: DP的方法有很多种。 也可以容斥。

frog的小池塘 2322

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

POJ 3123 Ticket to Ride

题目链接: http://poj.org/problem?id=3123 题意: 在n个城市间要建立四条铁路线,给定每条线路的起点和终点。 如果某两个城市之间可以建造铁路,那么建造这条铁路将有一定的花费。 求建立四条的最小总费用。 算法: 这道题还是斯坦纳树,以四条线路的起点和终点为关键点。 关键点中显然可能有重复的,不过不影响解题。 注意,最终要求的地图可能是由

frog的小池塘 2031

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

CF 7D: Palindrome Degree

题目链接:http://codeforces.com/contest/7/problem/D 题意: “等级”的定义是, 若一个长度为len的前缀是回文串, 且它的长度为floor(len/2)的前缀和后缀的“等级”为k, 则它的等级是k+1。 求一个字符串所有前缀的“等级”和。 算法: 我是用manacher算法求的回文串。 manacher算法的介绍很多,比如

frog的小池塘 2027

CF 314B: Sereja and Periods

由于CF可以看代码的缘故,一般不写CF题解。 但是觉得这道题确实比较巧妙,于是记录一下。 做这道题时参考了两位神犇的代码: http://codeforces.com/contest/314/submission/3832474 http://codeforces.com/contest/314/submission/3845338 谢谢! 题目链接:http:

frog的小池塘 1967

HDOJ 4689: Derangement

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4689 题目大意: 已知1 ~ N 的全排列。 给出第 i 位置上的数比i大还是小。 求可能的方法数。 算法: 这个DP有点儿绕。 由左向右依次处理,注意只能把已经处理的数填在已经处理的位置上。也就是处理到 i 时只能把数字1 ~ i 填到第1 ~ i 的位

frog的小池塘 1771

CF 379D: New Year Letter

题目链接: http://codeforces.com/contest/379/problem/D 题目大意: 给定一个长度为n的字符串s1和一个长度为m的字符串s2。 做k - 2次类似斐波那契的操作:sk = s(k-1) + s(k-2)。 已知sk中恰好含有k个"AC"子串,求是否存在符合条件的s1、s2 算法: 显然,

frog的小池塘 1482

SRM 552 - 500 FoxAndFlowerShopDivOne

题目链接: http://community.topcoder.com/stat?c=problem_statement&pm=11387 题目大意: 一个矩阵中种了两种花, 一个方格里最多种一支花,可以不种。 现在要在矩阵中选取两个不相交的子矩阵,使其中两种花数量之差不超过规定值,且两种花的总数最大。 算法: 这道题是很水的一道枚举题。 两个不相交子矩阵,要不就是

frog的小池塘 1466

BZOJ 2038: 小Z的袜子

题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2038 题目大意 算法: 很有趣的是,这道题我在两周前去成都赛区的时候就做出来了,一直忘了贴了。。

frog的小池塘 1391

CF 109C: Lucky Tree

题目链接: http://codeforces.com/contest/109/problem/C 题目大意: 在一棵树上,有一些边是幸运边,现要求出点组(i, j, k)的数量,使得i 到j 的路径上和i 到k 的路径上都至少有一条幸运边。 算法: 法一: 将点按照非幸运边缩联通块。 枚举做i 的点,那么以该点为i 的所有解,即是由i 点与任意两个不与它在同一个联通

frog的小池塘 1381

SRM 610 - 550 AlbertoTheAviator

题目链接: 暂无 题目大意: 有n个任务需要完成,初始具有F的能量。 任务i开始之前至少要具有的能量duration[i],任务结束后可以得到refuel[i]的能量补充,refuel[i]严格小于duration[i]。 完成任务的顺序不限,问至多完成多少个任务。 算法: 先排序再背包。 排序的时候要先按照refuel[i]从大到小,再按照duration[i]从

frog的小池塘 1376

HDOJ 4670: Cube number on a tree

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4670 题目大意: 树的每个节点有一个点权,所有的点权都可以被给定的30个质数表示出来。 在树上找合法点对。 合法点对指的是,两点间路径上的所有点(含端点)的点权乘积是立方数的点对。 注意:点对中的两个点可以是相同的,这个坑了我好久,切~ 算法: 树的点分治。 每次处

frog的小池塘 1364

SOJ 3194: K-th

题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=3194 题目大意: 求区间第K大数。 X小于Y的定义是:X的各数字之和小于Y的个数字之和,或者X的各数字之和等于Y的个数字之和且X的数值小于Y。 算法: 很明显能看出来这是个数位DP。 但这题有点儿绕。 我的做法是,先写一个函数用记忆化搜索求[0,x]区间内各数字

frog的小池塘 1300
上一篇: SOJ 3194: K-th
下一篇: HDOJ 4612: Warm up
frog1902
博客等级 码龄14年 152粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值