ZR提高失恋测3
ZR提高失恋测3
(感觉这一场比以往的简单了一些)
估分 100 + 40 + 40
得分 100 + 60 + 40
???
A
首先,我们能够想到一个比较简单的\(n^2\)做法,
枚举答案子序列中两个\(1\)之间\(0\)的个数(就是题目中的距离),直接贪心能选就算,肯定不会似的答案更劣
这样就有了\(60\)分的好成绩
我们考虑如何优化这个暴力,
由于0的个数不具有可二分性,所以不能对外层枚举进行优化,那么我们只能对这内层循环下手了
发现我们每次暴力找\(x\)的\(0\)这个过程太慢了,我们想到两个方式去优化
首先 二分
我们维护一下前缀\(1\)的个数
每次二分查找一下下一次跳\(x\)次\(0\)的位置
其次
倍增,感觉道题同二分把,把\(x\)二进制拆分然后求\(k\)级祖先
注意写代码的时候有一个需要一个细节,就是如果最后一个匹配成功的是\(1\)
或者最后一段的\(0\)没有匹配满的时候,最后一个的\(100\dots\)的贡献是要减去的
B
首先这个\([dis,1.1\times dis]\)就肯定要搞点东西
首先,还是非常朴素的暴力,我们对于每个点,都去维护一下到这个点的所有的路径的长度
然后暴力合并
之后读进来一个询问点就暴力lower_bound一下判断合法不合法,这样就有60分了
我们上面的暴力并没有用到\(1.1\times dis\)这个东西,我们仔细想一下有什么用?
如果一个点有三条路径\(x,y,z\)满足
\(\frac{z}{1.1} <x < y < z\)
那么\(y\)这一条路径是没有用的
因为
也就是\(y\)的功能能够完美的被\(x,z\)去代替
这也就提示我们需要存的路径不会太多,那么有多少呢
我们发现上面的情况
\(1.1 ,1.1^2 ,1.1^3,\dots 1.1^x\)
极限情况也要是这样的数列才不会出现上面的情况
而\(1.1^{450} > 10^{18}\)
所以一个点的合法路径条数不会超过\(450\)
我们可以考虑去只维护合法的部分
我们维护一个递增的数组表示路径
每次对于一条边\(x->y\)
我们直接把两个数组类似归并排序的方式合并就好了
只要在合并过程中出现
上面\(x,y,z\)的情况,就把\(y\)踢掉
最后依旧二分查一下答案就好
C
大分类讨论
先咕咕咕
ZR提高失恋测3的更多相关文章
- ZR提高失恋测4
ZR提高失恋测4 比赛链接 A (方便讨论,设读入的串为\(S,T\)答案串为\(A\)) 首先\(*\)只会有一个 这是这道题目中非常重要的一个结论 简单证明一下? 因为\(*\)可以代表所有的字符 ...
- ZR提高失恋测2(9.7)
ZR提高失恋测2(9.7) 网址http://www.zhengruioi.com/contest/392 版权原因,不放题面 A 首先,我们发现对于匹配串\(s\)中所有满足\(s_i \not = ...
- ZROI CSP-S失恋测(1)
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "怎么大家一个暑假不见都变菜了啊."--蔡老板 A 考虑一个\(nk^2\)的dp,按\(w_i\)排序,则每个组 ...
- ZR 提高十连 DAY 4
哇 这题目怎么一次比一次毒瘤 当然这次还好 有会做的题目. T1 一眼看上去 毒瘤!再看一眼 我真不想看了 扔了. T2 哇感觉能写 哇这不是 随便都有40分了么 二分?优化一下65到手了.然后剩下的 ...
- ZROI 提高十连测 Day1
第一天的提高模拟测 考前特意睡了20min 还是歇菜了,果然自己菜是真实的. 题目质量海星 但是我都不会这是真的...题目由于是花钱买的这里就不放了 LINK:problem 熟悉我的人应该都知道账号 ...
- Java下好用的开源库推荐
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文想介绍下自己在Java下做开发使用到的一些开源的优秀编程库,会不定 ...
- 【科研论文】基于文件解析的飞行器模拟系统软件设计(应用W5300)
摘要: 飞行器模拟系统是复杂飞行器研制和使用过程中的重要设备,它可以用来模拟真实飞行器的输入输出接口,产生与真实系统一致的模拟数据,从而有效避免因使用真实飞行器带来的高风险,极大提高地面测发控系统的研 ...
- NOIP2018游记(更新完毕)
10.13 初赛 Day -1 考前 这一次的考场从暗♂德华兴改到了长沙市一中,一进去:我一看,考场在哪???这一中比长郡大了好多,而且连指示牌都没有,这时碰见了谢总,谢总告诉我们在第二教学楼.路上还 ...
- 完结篇OO总结
目录 前言 一.第四单元两次架构设计 二.架构设计及OO方法理解的演进 三.测试理解与实践的演进 四.课程收获 五.改进建议 前言 持续了17周的OO终于走向了尾声,想想寒假的时候连类都不知道是什么, ...
随机推荐
- day39-Spring 17-Spring的JDBC模板:完成增删改的操作
JdbcTemplate根DBUtils非常类似,你要是有非常多的Dao,你每一个Dao都需要写它 /*在Dao层注入JDBC模板*/ private JdbcTemplate jdbcTemplat ...
- js表格上下移动添加删除
html部分 <div onclick='fn()'>加</div> <table width="250" border="1" ...
- Python 局部变量转为全局变量
- pl/sql进阶——例外处理
在pl/sql的执行过程中发生异常时系统所作的处理称为一个例外情况(exception).通常例外情况的种类有三种: ①预定义的oracle例外情况,oracle预定义的例外情况大约有24个,对于这种 ...
- python 源文件编码
- jQuery show hide方法 二级菜单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- @uoj - 435@ 【集训队作业2018】Simple Tree
目录 @description@ @solution@ @accepted code@ @details@ @description@ 有一棵有根树,根为 1,点有点权. 现在有 m 次操作,操作有 ...
- HZOJ 匹配
Hash/KMP裸题,并不想写什么,只是复习一下KMP吧. void get_n() { next[]=; ; ;i<=lt;i++) { && t[i]!=t[j+])j=ne ...
- Open Source GIS and Freeware GIS Applications
Open Source GIS and Freeware GIS Applications An open source application by definition is software ...
- Google Colab使用教程
简介Google Colaboratory是谷歌开放的云服务平台,提供免费的CPU.GPU和TPU服务器. 目前深度学习在图像和文本上的应用越来越多,不断有新的模型.新的算法获得更好的效果,然而,一方 ...