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终于走向了尾声,想想寒假的时候连类都不知道是什么, ...
随机推荐
- scrapy 调用js
依赖: PyExecJS 使用案例: from execjs import execjs text = response.xpath('//script/text()')[1].get() ctx = ...
- 2019-9-23-dotnet-判断特定进程存在方法
title author date CreateTime categories dotnet 判断特定进程存在方法 lindexi 2019-09-23 16:20:42 +0800 2019-09- ...
- 实现一个简易的promise
//promise里面只有三个状态,且三个状态的转换形式有两种 //由pending转换为fulfilled,由pending转换为rejected //Promise的构造函数参数是一个函数,函数的 ...
- css3 练习
css3 文本效果 css3中包含几个新的文本特征 在本章中您将了解一下文本属性 text-shadow box-shadow word-wrap word-break css3 的文本阴影 css3 ...
- jenkins集成错误 标签: 发布 2016-01-10 20:45 747人阅读 评论(21) 收藏
进入ITOO的项目以后,终于要将自己负责的模块在jenkins上面集成发布了.首先自己按照文档要求一步一步的将配置完成,然后构建,不错所料出错了,经过修改,终于构建成功!构建成功以后就没再管了,结果第 ...
- oracle函数 current_timestamp
[功能]:以timestamp with time zone数据类型返回当前会话时区中的当前日期 [参数]:没有参数,没有括号 [返回]:日期 [示例]select current_timestamp ...
- 2014年最热门的国人开发开源软件TOP100
2014年最热门的国人开发开源软件TOP100 不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多 ...
- poj 2689 Prime Distance (素数二次筛法)
2689 -- Prime Distance 没怎么研究过数论,还是今天才知道有素数二次筛法这样的东西. 题意是,要求求出给定区间内相邻两个素数的最大和最小差. 二次筛法的意思其实就是先将1~sqrt ...
- 十分钟学会 Fiddler
一.Fiddler介绍 Fiddler是一个http抓包改包工具,fiddle英文中有"欺骗.伪造"之意,与wireshark相比它更轻量级,上手简单,因为只能抓http和http ...
- oracle使用日期
当使用日期是,需要注意如果有超过5位小数加到日期上, 这个日期会进到下一天! 例如: 1. SELECT TO_DATE(‘01-JAN-93’+.99999) FROM DUAL; Returns: ...