test20190320
全连

- \(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的更多相关文章
- test20190320 全连(fc)
题意 全连(fc) [题目背景] 还记得若干年前那段互相比较<克罗地亚狂想曲>的分数的日子吗? [题目描述] E.Space 喜欢打音游. 但是他技术不好,总是拿不到全连(Full Com ...
随机推荐
- Jenkins-Kubernetes-docker-自动发布
使用的是Jenkins pipeline: 这里只是做了更新,没有创建,没有借助helm等工具,先用着,以后再研究. pipeline { agent any stages { stage(" ...
- IIS和ASP.NET MVC 管道处理模型
转载自 博客园 青羽 http://www.cnblogs.com/tenghoo/archive/2009/11/04/IIS_And_ASPNET_Http_Runtime_Pipeline.h ...
- Git常用命令和Git团队使用规范指南
转自:https://wsgzao.github.io/post/git/ 前言 在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品——Git.它的出现改变了 ...
- 常见ADB命令
常见ADB命令 比如说知道了push和pull操作,就可以实现一个简单的手机助手. 如果有多台设备,操作的时候要指定设备. -s加设备名称
- Oracle 冷备份详解【实战案例】
Oracle 冷备份详解 --准备工作 select * from v$database; select file_name from dba_data_files; create tablespac ...
- Docker 学习记录笔记(一)
Docker 一些简单的命令列表docker build -t friendlyhello . # Create image using this directory's Dockerfiledock ...
- Python之坐标轴刻度细化、坐标轴设置、标题图例添加
学习python中matplotlib绘图设置坐标轴刻度.文本 http://www.jb51.net/article/134638.htm Python绘图 https://www.cnblogs. ...
- CSU-1307-二分+dij
1307: City Tour Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 59 ...
- mongodb安装与权限配置
mongodb下载地址:官方下载IDE工具:Robo 3T:官方下载 windows系统要求64位,最低2g内存,推荐8g内存及以上 安装过程没有需要配置的地方,直接下一步到结束,如果想要方便可以在环 ...
- js中常用的字符串方法
1,基础方法 charAt();返回该位置的字符,类似数组下标: substring();返回选中的字符,两个参数是下标. slice();参数是是一个正数,返回该数之后的剩余字符串:参数是负数,返回 ...