BZOJ 4828: [Hnoi2017]大佬(状态搜索)

本文介绍了一种通过动态规划和搜索算法确定角色对决最优策略的方法。通过对角色的血量、攻击力进行分析,采用双指针技巧来寻找有效的攻击组合,确保在限定时间内达成最佳效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意

挺多操作的,自己看
原题链接

分析

首先求出最大怼大佬的天数,因为补血和攻击操作是没有关系的,所以可以DP求出最多怼大佬多少天。

然后关于F和T的关系处理是很巧妙地,爆搜!!,爆搜出来状态数并不多,处理出来所有可能的值以及所需要的天数

然后用一个他们叫tow-pointer的神秘算法。。。其实就是两个指针

因为不能让大佬的自信为负数,所以要保证两次直接怼的操作不能让,就用左指针从小到大,右指针随之减小,在这之前还要加一个0伤害0天数的不怼大佬情况

设大佬血量为D,伤害,天数为(d,f),可以怼大佬的总天数为C
则D-d1-d2>=0
然后有可行解则:D-d1-d1<=C-f1-f2
那么就是D-C<=(d1-f1)+(d2-f2),因此设置辅助数组g[i]表示前i个元素dj-fj的最大值,D-C<=g(point1)+g(point2)即可

注意指针边界问题即可

代码

没有这种东西

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值