[HNOI2018]转盘[结论+线段树]
题意
分析
- 首先要发现一个结论:最优决策一定存在一种 先在出发点停留之后走一圈 的情况,可以考虑如下证明:
如果要停留的话一定在出发点停留,这样后面的位置更容易取到。
走超过两圈的情况都可以变成走一圈+再走一段,首先若干圈显然只有最后一圈是有意义的。
但是可能在取到最后一个位置之前我们会把起点之前的一段后缀通过走一圈的方式取完,所以会再走一段。
进一步推理,发现情况2中,如果我们选择那段后缀的开头作为我们的起点,结果不会变差。容易归纳得到最终的答案一定只会走一圈。
- 将序列倍长,记 \(a_i=T_i-i\) 不难得到 \(ans=\min\limits_{i=1}^n\{\max\limits_{j=i}^{i+n-1}a_{i+j-1}+i\}+n-1\)
- 实际可以放宽约束,上式与下式等价:\(ans=\min\limits_{i=1}^n\{\max\limits_{j=i}^{2n}a_{i+j-1}+i\}+n-1\)
- 我们要求的即 \(\min\limits_{i=1}^nsuf_i+i\),可以考虑像 楼房重建 一题一样线段树维护单调栈。具体操作的难点在于合并。
因为维护后缀极值所以右区间的答案可以直接贡献。记录区间最大值 \(mx\) 和 在区间的右子区间影响左子区间之后,左子区间的答案 \(lf\)。考虑左边被右边最大的位置遮挡的问题。可以花 \(log\) 的时间找到左区间第一个 \(\ge mx_R\) 的位置 \(pos\) ,首先新产生了一个可能答案 \(pos+1+mx_R\) ,然后左区间的答案可以再花 \(log\) 的时间递归寻找答案。
总时间复杂度 \(O(nlog^2n)\)。
代码链接
[HNOI2018]转盘[结论+线段树]的更多相关文章
- 【BZOJ5286】[HNOI2018]转盘(线段树)
[BZOJ5286][HNOI2018]转盘(线段树) 题面 BZOJ 洛谷 题解 很妙的一道题目啊.(全世界除了我这题都有40分,就我是一个状压选手 首先来发现一些性质,我们走一圈一定不会更差. 为 ...
- [BZOJ5286][洛谷P4425][HNOI2018]转盘(线段树)
5286: [Hnoi2018]转盘 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 15 Solved: 11[Submit][Status][Di ...
- [BJOI2019] 删数 [dp转贪心结论+线段树]
题面 传送门 思路 dp部分 以下称合法序列为原题面中可以删空的序列 这个是我在模拟考场上的思路 一开始我是觉得,这个首先可以写成一个dp的形式:$dp[i][j]$表示用$j$个数字填满了目标序列的 ...
- UNR#3 Day1——[ 堆+ST表+复杂度分析 ][ 结论 ][ 线段树合并 ]
地址:http://uoj.ac/contest/45 第一题是鸽子固定器. 只会10分.按 s 从小到大排序,然后 dp[ i ][ j ][ k ] 表示前 i 个元素.已经选了 j 个.最小值所 ...
- 【BZOJ2770】YY的Treap 结论+线段树
[BZOJ2770]YY的Treap Description 志向远大的YY小朋友在学完快速排序之后决定学习平衡树,左思右想再加上SY的教唆,YY决定学习Treap.友爱教教父SY如砍瓜切菜般教会了Y ...
- 【做题】cf603E——线段树分治
首先感谢题解小哥,他在标算外又总结了三种做法. 此处仅提及最后一种做法. 首先考虑题目中要求的所有结点度数为奇数的限制. 对于每一个联通块,因为所有结点总度数是偶数,所以总结点数也必须是偶数的.即所有 ...
- bzoj5123 [Lydsy12月赛]线段树的匹配
题意: 线段树是这样一种数据结构:根节点表示区间 [1, n]:对于任意一个表示区间 [l, r] 的节点,若 l < r, 则取 mid = ⌊l+r/2⌋,该节点的左儿子为 [l, mid] ...
- BZOJ.5286.[AHOI/HNOI2018]转盘(线段树)
BZOJ LOJ 洛谷 如果从\(1\)开始,把每个时间\(t_i\)减去\(i\),答案取决于\(\max\{t_i-i\}\).记取得最大值的位置是\(p\),答案是\(t_p+1+n-1-p=\ ...
- BZOJ5286: [Hnoi2018]转盘 (线段树)
题意 给你绕成一圈的物品共 \(n\) 个 , 然后从其中一个开始选 , 每次有两种操作 , 一是继续选择当前物品 , 二是选择这个后一个物品 . 选择后一个物品要求当前的时刻大于后一个的 \(T_i ...
随机推荐
- Linux简单使用
1.基本命令 创建目录pathA:mkdir pathA 进入目录pathA:cd pathA 查看目录内容:ls 查看目录下文件的详细信息:ls -l,也可以是:ll(l是小写的L,别看错了) 拷贝 ...
- MAYA逼真手枪制作视频教程 中文字幕
下载地址 更多中文字幕教程请关注微镜映画网,有各类CG教程提供
- Prometheus Node_exporter 之 Network Netstat TCP
Network Netstat TCP /proc/net/snmp 1. TCP Segments type: GraphUnit: shortLabel: Segments out (-) / i ...
- 使用 Chef 自动执行 Azure 虚拟机部署
Chef 是一个强大的工具,用于提供自动化和所需的状态配置. 使用我们的最新 cloud-api 版本,Chef 提供了与 Azure 的无缝集成,使得你能够通过单个命令设置和部署配置状态. 在本文中 ...
- MySQL索引选择不正确并详细解析OPTIMIZER_TRACE格式
一 表结构如下: CREATE TABLE t_audit_operate_log ( Fid bigint(16) AUTO_INCREMENT, Fcreate_time int(10) un ...
- 转:C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、Sort)
C#常用的集合类型(ArrayList类.Stack类.Queue类.Hashtable类.Sort) .ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在Array ...
- C# Excel操作类 ExcelHelper
实现C#与Excel文件的交互操作,实现以下功能: 1.DataTable 导出到 Excel文件 2.Model数据实体导出到 Excel文件[List<Model>] 3.导出数据到模 ...
- Alpha- 事后诸葛亮(麻瓜制造者)
目录 预期计划 现实进展 团队体会 成员分工及工作量比例 会议总结 预期计划 在Alpha阶段开始之前,我们的预期计划是:从用户登录,发布商品.发布求购信息的基本功能开始做起.用户登录使用输入教务处的 ...
- BZOJ3578:GTY的人类基因组计划2(集合hash,STL)
Description GTY召唤了n个人来做实验,GTY家的房子很大,有m个房间一开始所有人都在1号房间里,GTY会命令某人去某个房间等待做实验,或者命令一段区间的房间开始实验,实验会获得一些实验信 ...
- C# ActiveX 网页打包验证自动升级
原文地址:http://www.cnblogs.com/yilin/p/csharp-activex.html 注意事项:Win10下需要设置兼容模式,F12仿真切换到IE6-8(版本参考——BT90 ...