全连

  • \(n\leq 10^6\) ,保证答案在 \(long\ long​\) 范围内.
  • 比较浅显的 \(dp\ ?\) 记 \(f[i]\) 表示考虑前 \(i\) 个音符,其中第 \(i\) 个被钦定选择,答案就是 \(\max f[i]\).
  • 转移: \(f[i]=val[i]+\max f[j],j<i,j\leq i-t[i],j+t[j]\leq i\). 暴力转移是 \(O(n^2)\) 的.
  • 转移有三个限制条件,第一个直接通过处理顺序解决,只有后两个需要考虑.如果把 \(j,t[i]+j\) 看做两维,显然可以用一棵主席树来维护.可惜这样做空间会爆掉.
  • 仔细观察,最后一个条件 \(j+t[j] \leq i\) 是有单调性的,若一个 \(j\) 对当前的 \(i\) 合法,那么它对后面的所有 \(i\) 都合法.
  • 用一个堆记录一下还未产生贡献的 \((j,t[j]+j)\) ,当前满足 \(j+t[j]\leq i\) 时就让它产生贡献.
  • 这样就只用在 \(j\leq i-t[i]\) 中找最大值,用 \(Fenwick-tree\) 维护一下就可以了.时间复杂度为 \(O(nlogn)\) .

test20190320的更多相关文章

  1. test20190320 全连(fc)

    题意 全连(fc) [题目背景] 还记得若干年前那段互相比较<克罗地亚狂想曲>的分数的日子吗? [题目描述] E.Space 喜欢打音游. 但是他技术不好,总是拿不到全连(Full Com ...

随机推荐

  1. Jenkins-Kubernetes-docker-自动发布

    使用的是Jenkins pipeline: 这里只是做了更新,没有创建,没有借助helm等工具,先用着,以后再研究. pipeline { agent any stages { stage(" ...

  2. IIS和ASP.NET MVC 管道处理模型

    转载自  博客园 青羽 http://www.cnblogs.com/tenghoo/archive/2009/11/04/IIS_And_ASPNET_Http_Runtime_Pipeline.h ...

  3. Git常用命令和Git团队使用规范指南

    转自:https://wsgzao.github.io/post/git/ 前言 在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品——Git.它的出现改变了 ...

  4. 常见ADB命令

    常见ADB命令 比如说知道了push和pull操作,就可以实现一个简单的手机助手. 如果有多台设备,操作的时候要指定设备.  -s加设备名称

  5. Oracle 冷备份详解【实战案例】

    Oracle 冷备份详解 --准备工作 select * from v$database; select file_name from dba_data_files; create tablespac ...

  6. Docker 学习记录笔记(一)

    Docker 一些简单的命令列表docker build -t friendlyhello . # Create image using this directory's Dockerfiledock ...

  7. Python之坐标轴刻度细化、坐标轴设置、标题图例添加

    学习python中matplotlib绘图设置坐标轴刻度.文本 http://www.jb51.net/article/134638.htm Python绘图 https://www.cnblogs. ...

  8. CSU-1307-二分+dij

    1307: City Tour Submit Page   Summary   Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 59 ...

  9. mongodb安装与权限配置

    mongodb下载地址:官方下载IDE工具:Robo 3T:官方下载 windows系统要求64位,最低2g内存,推荐8g内存及以上 安装过程没有需要配置的地方,直接下一步到结束,如果想要方便可以在环 ...

  10. js中常用的字符串方法

    1,基础方法 charAt();返回该位置的字符,类似数组下标: substring();返回选中的字符,两个参数是下标. slice();参数是是一个正数,返回该数之后的剩余字符串:参数是负数,返回 ...