非常巧妙的一场模拟赛,比较偏向于 Atcoder 的风格,考场上做出了 A 、C 两题。

A. 礼物购买

排完序后一个个礼物地枚举时间复杂度是\(\Theta(nm)\)的,不能接受。但是注意到,若当前商品买得起,那么它一定能够使答案缩小至少一半。因此我们用二分法找到下一个能买得起的商品,买完再二分下一个,时间复杂度是\(\Theta(n\log^2(n))\)的。

这道题的思路,来源于想到这是一个取模运算,或者是想到若前一个不能买了后一个能买了,那么商品的价格一定会相差一定的级数,而这个级数一共的肯定不大。

B. 相似子串

假设只有一个询问,那就前缀和一下,然后一个个位置枚举看一下当前子段 1 的数量相不相等就行。

然后询问多了就彻底不会了,而且似乎询问还很难一起处理。。。这里隆重介绍一中字符串问题的大杀器:

\(\Sigma|T|<=1e6\)意味着,串长的种类数小于等于\(\sqrt n\)!因此把相同长度的串放在一起处理就可以了。

类似的题目还有这题:P3366 -- [FOI 2018 四校联训 Round 1]卷积练习题,当一个条件是某些量的值的总和小于等于一个数的时候,就意味着这些量的值只有根号种,这是一个很大力的武器。

C. 钻石守卫

我们先求个连通分量,在每个连通分量内,我们随便找到它的一棵生成树,显然只要确定生成树的一个结点的值,就可以通过树边确定整棵树的唯一取值方案。我们随便选一个点作为关键点求出子树的值,倘若这时与其他边存在矛盾,就可以 NIE 了。

若没有矛盾,一个点合法的条件是\(val_i \in [0,p_i]\),这是一个一次不等式;总的来看,关键点的取值范围受到许多一次函数的约束,我们可以用简单得树形 DP 求出关键点的取值范围,若右端点小于左端点则输出无解;若有解,那么子树和的最大最小值一定只会在两个端点取得——这是一次函数嘛。

D. 圆与点对

看着挺像是从斜率下手解决问题的,连数据范围都非常的 KD-tree ,然而嘛。。。我们从每个点引两条切线,若两个点的切线相交,则它们可以互相看见。对切点建立极坐标系,每个点对应一个区间,求相交的线段对数。

用线段树轻松解决——线段树需要整数域,那就把角度映射到\([0,+\infty]\)的整数域中即可。相交的线段对数——相交有两种情况,一种是部分包含,那么两个线段各有一个端点被另一个线段包含;一种是完全包含,那么一个线段有两个端点在另一个线段中。因此求出每条线段上有多少个端点,除以二就是答案。

NOIP2020 模拟赛 B 组 Day6的更多相关文章

  1. 2017.1.16【初中部 】普及组模拟赛C组总结

    2017.1.16[初中部 ]普及组模拟赛C组 这次总结我赶时间,不写这么详细了. 话说这次比赛,我虽然翻了个大车,但一天之内AK,我感到很高兴 比赛 0+15+0+100=115 改题 AK 一.c ...

  2. 2018.12.30【NOIP提高组】模拟赛C组总结

    2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ...

  3. 2017.07.06【NOIP提高组】模拟赛B组

    Summary 今天比赛感觉题目很奇葩,都可以用许多简单方法来做,正确性都显然,当然也有点水,也就是说是考我们的数感和数学知识,而程序,只是代码的体现. 这次的时间安排感觉不错,因为很快就打完最后一道 ...

  4. 2017.08.08【NOIP提高组】模拟赛B组

    Summary 今天的题目也不算很难,唯一一道没做出来的题目是以前做过的,太不应该了. Problem T1 油滴扩展 题目大意 给你一堆点,你准备要在这么多的点当中滴油.你可以自己安排顺序,每次滴油 ...

  5. 2017.07.11【NOIP提高组】模拟赛B组

    Summary 今天的比赛打得还不错,第一题被同桌灌输的贪心,纯模拟洗脑了,然后steal的看了一下,发现怎么也对不了,一直在检查.最后10分钟才找出反例,推出动态规划方程,没有想到怎么转移,比赛就结 ...

  6. 算法笔记_127:蓝桥杯2017模拟赛-本科组习题解答(Java)

     目录 1 算年龄 2 猜算式 3 排列序数 4 字符串比较 5 还款计算 6 滑动解锁 7 风险度量   PS:以下代码部分仅供参考,若有不当之处,还请路过同学指出哦~ 1 算年龄 标题:算年龄 英 ...

  7. 2020.10.17【普及组】模拟赛C组 总结

    总结 这次比赛 120 分,老师说上 200 是不容易的,但我觉得这不是我真的水平 改题情况 T1 题目大意:有 N 个小朋友,每个小朋友有 \(B_i\) 个朋友,问从中随机选 3 人使得 3 人关 ...

  8. 2020.09.12【NOIP提高组&普及组】模拟赛C组 总结

    总结:这次比赛成绩并不理想,虽然策略得当 \(P.S.\):太多题有多组数据,但是样例只有一个数据 各题题解和改题情况 T1 匹配 题面 描述 给你一个由{a,b-z,A,B-.Z}组成的字符串,我们 ...

  9. 洛谷mNOIP模拟赛Day1-分组

    传送门 首先是贪心的思路 从后向前选,能多选就多选, 理由:数字越少肯定越优,同时间隔尽量向前推,字典序尽量小 对于K==1,枚举1~512直接判断 对于K==2,需要用镜像并查集,来刻画" ...

随机推荐

  1. programmercarl——数组——二分查找

    二分查找,在经过: 34--https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-arr ...

  2. DOM的本质 和 方法

    <JavaScript DOM编程艺术> 读书笔记 一句话解释DOM: DOM,即我们所看到的网页,其在浏览器背后的文档结构(树状分支结构),涵盖了每一个节点(称之为对象).可以通过JS等 ...

  3. 【Java虚拟机2】Java类加载机制

    前言 JAVA代码经过编译从源码变为字节码,字节码可以被JVM解读,使得JVM屏蔽了语言级别的限制.才有了现在的kotlin.Scala.Clojure.Groovy等语言. 字节码文件中描述了类的各 ...

  4. 【UE4】虚幻引擎技术直播汇总(含中英文直播)

    B站虚幻引擎官方账号 中文直播 [中文直播]第35期 | 使用GIS在UE中创造真实地球风貌 | Epic 周澄清 [中文直播]第34期 | 包教包会的Epic MegaGrants申请之道 | Ep ...

  5. BUAA 2020 软件工程 个人项目作业

    BUAA 2020 软件工程 个人项目作业 Author: 17373051 郭骏 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人项目作业 ...

  6. elasticsearch基于RBAC认证和集群之间的TLS通讯

    elasticsearch基于RBAC认证和集群之间的TLS通讯 一.背景 二.需要解决的问题 三.给es增加用户名和密码访问 1.修改config/elasticsearch.yml 2.访问es集 ...

  7. 嵌入式单片机之STM32F103C8T6最小系统板电路设计参考

    STM32F103C8T6最小系统板电路设计 一.电源部分 设计了一个XH插座,以便使用3.7V锂电池供电,接入电压不允许超过6V. 二.指示灯部分 电源指示灯可以通过一个短路帽控制亮灭,以达到节电的 ...

  8. STM32中断编程三步曲教你弄会中断设置以及中断优先级设置

    中断作为stm32中必不可少的一个功能,其重要性是不言而喻的因此把中断学习好是根本. 所以今天就来好好啃一下中断配置的知识,俗话说:磨刀不误砍柴工.问题是什么呢?项目中我用到了一个触摸键盘TTP229 ...

  9. Python基础——数据类型——字符串

    整数.浮点数.布尔值的用法大同小异,而Python字符串的一些用法不易记住,这里以廖雪峰教程为基础,进行一些思考和复习总结. 字符串是什么? 以单引号'或者双引号"括起来的任意文本,比如:& ...

  10. 『学了就忘』Linux基础 — 15、了解Linux系统的目录结构

    目录 1.一级目录说明 (1)一级目录列表 (2)/bin/和/sbin/目录说明 (3)/boot/目录说明 (4)/lib/和/lib64/目录说明 (5)/lost+found/目录说明 (6) ...