概述
题目大意
挺多操作的,自己看
原题链接
分析
首先求出最大怼大佬的天数,因为补血和攻击操作是没有关系的,所以可以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)即可
注意指针边界问题即可
代码
没有这种东西
最后
以上就是平常爆米花为你收集整理的BZOJ 4828: [Hnoi2017]大佬(状态搜索)的全部内容,希望文章能够帮你解决BZOJ 4828: [Hnoi2017]大佬(状态搜索)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复