我是靠谱客的博主 平常爆米花,最近开发中收集的这篇文章主要介绍BZOJ 4828: [Hnoi2017]大佬(状态搜索),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目大意

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

分析

首先求出最大怼大佬的天数,因为补血和攻击操作是没有关系的,所以可以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]大佬(状态搜索)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部