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 ...
随机推荐
- Harbor 定制页面 和 二次开发指南
harbor的官方地址:https://github.com/goharbor/harbor 想对Harbor进行二次开发,首先要指定一个harbor的版本,这里我们以Harbor:1.6.2为例: ...
- 一款简单易用的.Net 断言测试框架 : Shouldly
GitHub地址:https://github.com/shouldly/shouldly Shouldly的官方文档:http://docs.shouldly-lib.net/ Nuget安装: 在 ...
- Asp.Net MVC向视图View传值的三种方法
本文将总结Asp.Net MVC向视图View传值的三种常见的方法: ----------------------------------------------------------------- ...
- dpdk CUSE
As the Userspace I/O HOWTO says For many types of devices, creating a Linux kernel driver is overkil ...
- 【Python】深入浅出学习Python的yield和generator
背景 之前走马观花接触过Python协程的概念,这两天和一个同事聊到了协程,死活想不起来曾经看过的东西,就记得一个yield,概念不清: 所以想捋一捋相关的东西,此篇作为学习的记录. Generato ...
- 【Jmeter】压测mysql数据库中间件mycat
背景 因为博主所负责测试的项目需要数据库有较大的吞吐量,在最近进行了升级,更新了一个数据库中间件 - - mycat.查询了一些资料,了解到这是阿里的一个开源项目,基于mysql,是针对磁盘的读与写, ...
- 5分钟弄懂Docker
尽管之前久闻Docker的大名了,但是天资愚钝,对其到底是个啥东西一直摸不清,最近花了一段时间整理了一下,算是整理出一点头绪来. 官网的介绍是这样的: Docker is an open platfo ...
- 20.并发容器之ArrayBlockingQueue和LinkedBlockingQueue实现原理详解
1. ArrayBlockingQueue简介 在多线程编程过程中,为了业务解耦和架构设计,经常会使用并发容器用于存储多线程间的共享数据,这样不仅可以保证线程安全,还可以简化各个线程操作.例如在“生产 ...
- HDU 4750 Count The Pairs ★(图+并查集+树状数组)
题意 给定一个无向图(N<=10000, E<=500000),定义f[s,t]表示从s到t经过的每条路径中最长的边的最小值.Q个询问,每个询问一个t,问有多少对(s, t)使得f[s, ...
- 极小极大搜索 的个人理解(alpha-beta剪枝)
极小极大搜索的算法过程: 参考文档:http://www.xqbase.com/computer/search_minimax.htm (经典) 主要思想比较简单,但说清楚也不大容易.其核心思想是通过 ...