NOIP2020 模拟赛 B 组 Day6
非常巧妙的一场模拟赛,比较偏向于 Atcoder 的风格,考场上做出了 A 、C 两题。
排完序后一个个礼物地枚举时间复杂度是\(\Theta(nm)\)的,不能接受。但是注意到,若当前商品买得起,那么它一定能够使答案缩小至少一半。因此我们用二分法找到下一个能买得起的商品,买完再二分下一个,时间复杂度是\(\Theta(n\log^2(n))\)的。
这道题的思路,来源于想到这是一个取模运算,或者是想到若前一个不能买了后一个能买了,那么商品的价格一定会相差一定的级数,而这个级数一共的肯定不大。
假设只有一个询问,那就前缀和一下,然后一个个位置枚举看一下当前子段 1 的数量相不相等就行。
然后询问多了就彻底不会了,而且似乎询问还很难一起处理。。。这里隆重介绍一中字符串问题的大杀器:
\(\Sigma|T|<=1e6\)意味着,串长的种类数小于等于\(\sqrt n\)!因此把相同长度的串放在一起处理就可以了。
类似的题目还有这题:P3366 -- [FOI 2018 四校联训 Round 1]卷积练习题,当一个条件是某些量的值的总和小于等于一个数的时候,就意味着这些量的值只有根号种,这是一个很大力的武器。
我们先求个连通分量,在每个连通分量内,我们随便找到它的一棵生成树,显然只要确定生成树的一个结点的值,就可以通过树边确定整棵树的唯一取值方案。我们随便选一个点作为关键点求出子树的值,倘若这时与其他边存在矛盾,就可以 NIE 了。
若没有矛盾,一个点合法的条件是\(val_i \in [0,p_i]\),这是一个一次不等式;总的来看,关键点的取值范围受到许多一次函数的约束,我们可以用简单得树形 DP 求出关键点的取值范围,若右端点小于左端点则输出无解;若有解,那么子树和的最大最小值一定只会在两个端点取得——这是一次函数嘛。
看着挺像是从斜率下手解决问题的,连数据范围都非常的 KD-tree ,然而嘛。。。我们从每个点引两条切线,若两个点的切线相交,则它们可以互相看见。对切点建立极坐标系,每个点对应一个区间,求相交的线段对数。
用线段树轻松解决——线段树需要整数域,那就把角度映射到\([0,+\infty]\)的整数域中即可。相交的线段对数——相交有两种情况,一种是部分包含,那么两个线段各有一个端点被另一个线段包含;一种是完全包含,那么一个线段有两个端点在另一个线段中。因此求出每条线段上有多少个端点,除以二就是答案。
NOIP2020 模拟赛 B 组 Day6的更多相关文章
- 2017.1.16【初中部 】普及组模拟赛C组总结
2017.1.16[初中部 ]普及组模拟赛C组 这次总结我赶时间,不写这么详细了. 话说这次比赛,我虽然翻了个大车,但一天之内AK,我感到很高兴 比赛 0+15+0+100=115 改题 AK 一.c ...
- 2018.12.30【NOIP提高组】模拟赛C组总结
2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ...
- 2017.07.06【NOIP提高组】模拟赛B组
Summary 今天比赛感觉题目很奇葩,都可以用许多简单方法来做,正确性都显然,当然也有点水,也就是说是考我们的数感和数学知识,而程序,只是代码的体现. 这次的时间安排感觉不错,因为很快就打完最后一道 ...
- 2017.08.08【NOIP提高组】模拟赛B组
Summary 今天的题目也不算很难,唯一一道没做出来的题目是以前做过的,太不应该了. Problem T1 油滴扩展 题目大意 给你一堆点,你准备要在这么多的点当中滴油.你可以自己安排顺序,每次滴油 ...
- 2017.07.11【NOIP提高组】模拟赛B组
Summary 今天的比赛打得还不错,第一题被同桌灌输的贪心,纯模拟洗脑了,然后steal的看了一下,发现怎么也对不了,一直在检查.最后10分钟才找出反例,推出动态规划方程,没有想到怎么转移,比赛就结 ...
- 算法笔记_127:蓝桥杯2017模拟赛-本科组习题解答(Java)
目录 1 算年龄 2 猜算式 3 排列序数 4 字符串比较 5 还款计算 6 滑动解锁 7 风险度量 PS:以下代码部分仅供参考,若有不当之处,还请路过同学指出哦~ 1 算年龄 标题:算年龄 英 ...
- 2020.10.17【普及组】模拟赛C组 总结
总结 这次比赛 120 分,老师说上 200 是不容易的,但我觉得这不是我真的水平 改题情况 T1 题目大意:有 N 个小朋友,每个小朋友有 \(B_i\) 个朋友,问从中随机选 3 人使得 3 人关 ...
- 2020.09.12【NOIP提高组&普及组】模拟赛C组 总结
总结:这次比赛成绩并不理想,虽然策略得当 \(P.S.\):太多题有多组数据,但是样例只有一个数据 各题题解和改题情况 T1 匹配 题面 描述 给你一个由{a,b-z,A,B-.Z}组成的字符串,我们 ...
- 洛谷mNOIP模拟赛Day1-分组
传送门 首先是贪心的思路 从后向前选,能多选就多选, 理由:数字越少肯定越优,同时间隔尽量向前推,字典序尽量小 对于K==1,枚举1~512直接判断 对于K==2,需要用镜像并查集,来刻画" ...
随机推荐
- SharkCTF2021 The_nature_of_the_human
(信安数基的quiz1写不出来 来这放题解泄愤) crypto类题. 题面 其加密的大致过程是,对明文flag中的逐个字符,随机使用三种加密方式: 第一种,对该字符进行sha256加密后以16进制形式 ...
- 短短 29 天,应对高峰 100W+ 访问,看浙大如何交出满分答卷
疫情期间"停课不停教,停课不停学",线上开课第一天,浙江大学网上开课平台访问量即突破100 万次,访客数3万余人,最高峰达 1.1万人同时在线,发起课程直播2000余场,然而系统却 ...
- 【二食堂】Alpha - Scrum Meeting 11
Scrum Meeting 11 例会时间:4.21 18:00~18:20 进度情况 组员 进度 今日任务 李健 1. 登录注册页面前后端对接issue 1. 登录注册页面前后端对接issue2. ...
- 2020BUAA软工个人博客作业
2020BUAA软工个人博客作业 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 学 ...
- eureka服务端和客户端的简单搭建
本篇博客简单记录一下,eureka 服务端和 客户端的简单搭建. 目标: 1.完成单机 eureka server 和 eureka client 的搭建. 2.完成eureka server 的添加 ...
- Python Numpy matplotlib Histograms 直方图
import numpy as np import matplotlib.pyplot as plt mu,sigma = 2,0.5 v = np.random.normal(mu,sigma,10 ...
- Apache Solr应用服务器存在远程代码执行漏洞👻
Apache Solr应用服务器存在远程代码执行漏洞 1.描述 Apache Solr是一个开源的搜索服务,使用Java语言开发,主要基于HTTP和Apache Lucene实现的. Solr是一个高 ...
- Filter学习笔记
博客园的编辑器太丑了,所以我换用了别的Markdown编辑器,并用图片形式上传.
- Spring一套全通4—持久层整合
百知教育 - Spring系列课程 - 持久层整合 第一章.持久层整合 1.Spring框架为什么要与持久层技术进行整合 1. JavaEE开发需要持久层进行数据库的访问操作. 2. JDBC Hib ...
- storm调用kafka重复消费的问题
1. 实现IBolt接口的bolt需要显式调用collector.ack(); 2. 继承自BaseBasicBlot的bolt, 会帮你自动调用ack的