首页 > 其他分享 >Slayers Come (区间覆盖种类数(dp+线段树)+ st表+二分,或者线段树) (2022杭电多校2)

Slayers Come (区间覆盖种类数(dp+线段树)+ st表+二分,或者线段树) (2022杭电多校2)

时间:2022-09-06 14:34:18浏览次数:70  
标签:杭电多校 线段 血量 st 怪物 区间 dp

题目;

给你一个长度为n的数组,每个位置上有一个野怪,野怪的攻击力和血量已知,你有m个技能,每个技能有三个值,一是可以击败的怪物,且怪物死后会攻击与它相邻的怪对于左边的怪伤害是血量-l,右边的怪时血量-r,如果大于该怪物的防御力即可击败这个怪物,问如何操作使得所有怪物至少被击败一次

题解:

  • 首先对于杀死一个怪物,就会搞死一片人, 
  • 通过预处理得出这些区间, 怎么弄呢? 就直接当前目标的防御减去右边的或者左边的人的攻击
  • 用st表存入最小值,在用二分答案搞出这个区间, 
  • 用线段树也可以搞定
  • 现在问题就是 用这些区间来覆盖 1,N 的方案数
  • DP解决,  f[i] 表示 恰好覆盖 1,i 这个区间的方案数
  • 整么更新捏? 
  • 首先将 这些区间 按照 r 升序来排, 然后在以l 位升序来排
  • 对于 一个区间的贡献 就是 
  • dp[r]+ = ∑ dp[j] (j = [l−1 , r]) // 这里是到达 R ,很巧妙,仔细思考, 先是单个的加, 然后 就是 在前面的所有情况就一个当前情况,就可以表达所有情况了
    0 ≤ i ≤ l − 2, dp[i] ∗= 2 , 当前区间 选不选 都无所谓,都可以,没有影响, 因为后面的区间值
    初始化dp[0] = 1

标签:杭电多校,线段,血量,st,怪物,区间,dp
From: https://www.cnblogs.com/Lamboofhome/p/16661678.html

相关文章

  • java复习随笔(十三)——Stream流
    Stream流的生成方式Stream流的使用生成流通过数据源(集合,数组)生成流list.stream()中间操作一个流后面可以跟随零个或多个中间操作,其目的主要是打开流,做出某种程度的......
  • 关于若依框架实现list数据导出到excel并实现下载(简单实现)
    没看源码,仅仅会用先是在需要导出的实体类上添加若依自带的@Excel的注解,注解中主要的两个参数一个是name用于生成excel中的字段名,一个是sort用于在excel中字段的排序......
  • java List排序
    2.1新建Comparator比较器List<Person>list=newArrayList<Person>(){};Collections.sort(list,newPersonComparator());classPersonComparatorimplements......
  • 认识PostGIS
    1、什么是PostGISPostGIS是在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力的开源空间数据库,空间数据库像存储和操作数据库中其他任何对象一样去存储和......
  • Check if a string is null or empty in XSLT
    多条件查询string.Format("/root/deviceList//item/guid[{0}]",strBuilder.ToString())"/root/deviceList//item/guid[text()=\"h\"ortext()=\"a\"ortext()=\"c\"......
  • django中的request对象方法
    1.什么是request对象在django中,当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象;Django会将这个对象自动传递给响应的视图函数,一般视图函数约定......
  • WPF style和template区别 样式和模板
    如果只需对控件进行小幅度修饰(调整大小、位置、字体、颜色等)就用style;如果需要改变控件的外观和行为就用controlTemplate(形状、事件触发如鼠标停留效果等)。在实际项目中......
  • Ubuntu Jenkins升级2.346.3后远程调用403解决方案(HTTP ERROR 403 No valid crumb was
       一般通过api调用Jenkinsjob出现403(HTTPERROR403Novalidcrumbwasincludedintherequest)报错,是因为新版本Jenkins为了安全,搞的一套crsf认证机制,具体的自......
  • AtCoder Beginner Contest 265
    E-Warp注意到\(N\)相比\(M\)要小得多。考虑DP,令\(dp_{i,j,k}\)表示一共使用了\(i+j+k\)次操作,且每种操作的使用次数分别为\(i,j,k\)的方案数,然后......
  • c++STL用法总结
    一、vector的用法vectorvet;1、排序:sort(vet.begin(),vet.end()),时间复杂度O(nlogn)2、查找:if(find(vet.begin(),vet.end(),x)!=vet.end()),时间复杂度O(n)......