好题合集
1. AGC015F Kenus the Ancient Greek
- 定义
为执行 (辗转相除)所需要的步数。 次询问,给定 ,求 , 的 最大值, - 以及达到了最大值的
个数, 对 取模。 - 数据范围:
。
第一问考虑倒推,每一步让两个数尽量小:
发现答案就是最大的
思考第二问,不妨只统计
我们设
显然,如果
我们会发现符合
而经过一次辗转相除会使得其中很多变得相同,且
对于一定值
发现第
多加的正是第
为什么?
对于
所以第
我们从第
而
用第
(
得到了对于最大值对应的变换后的每个二元组
我们可以简单的计算出变换前的二元组数量。
于是我们
对于每个询问
就可以了。
2. AGC013F Two Faced Cards
- 给定一个包含
个二元组的集合 和一个包含 个数的数组 ,存在 次相互独立的询问。 - 每次询问向
中加入一个新给的二元组,在每个二元组的两个数中选一个,并将选出的数与 中数两两配对,使得每组配对中来自 的数小于等于来自 的数。 - 要求出选出数是二元组中第一个数的最大数量,存在无解。
- 数据范围:
。
因为我们要最大化选第一个数的数量,那就先全部选第一个数。
然后我们考虑如何判断能否将选出的数与
我们可以对两组数排序后检查,但更好的是利用 Hall 定理判断。
具体地,先对所有数离散化,然后可以拿个数组
对从
就只需要保证
这个方法的优势就在于,我们很好反悔,
我们可以直接对
对于每个询问我们枚举选哪个数,条件就变成了
我们找到满足
可以证明包含它且左端点最小的区间必选。
- ps:证明不想写,看这里 比较好。
这样我们从后往前一直选,可以使得
最后我们从前往后选最少的区间依次满足
我们每次贪心选择包含当前
3. 牛客24157E斐波 超级加强版
- 序列 {
} ,满足递推 ,其中 给定。 是一个可重集合 ,给定 ,设 为 。 - 给定一个数组
,存在 次操作,每次操作是其中一种: - 1.把
变为 。 - 2.计算
,输出答案模 。 - 数据范围:
。
考虑直接求通项,设
则
我们后面其实只要求出形如
考虑每个位置的权值对这个式子上面的指数的贡献,就是
拿线段树维护区间内这
其实需要特判
4. 【UR#18】在路上了
- 有一个
个点的完全图,每条边染红色或蓝色。 - 已知对所有
,连接 和 的连边为红色。 - 交互,可以询问
次,每次询问 和 之间边的颜色。 - 你需要找到一条由
个点 条边组成的路径,满足所有边的颜色相同。 - 数据范围:
。
yhx 写的极为清楚,我就不想写了。
5. ZROI21省选D2T2 商人
- 未来
天的物品价格可能是 枚金币或者 枚金币,每天可以买入一个、卖出一个或者什么都不做。 - 最初你有无限的金币,你想用最优策略从中获利,问
时,有多少种价格情况可以使你最多赚到 枚金币 。 - 数据范围:
; ; 。
显然的,我们只有在价格为
我们将价格序列看成一个长度为
- 得到
分的做法:设 表示当前到第 天匹配了 对括号前面还剩下 对括号的方案数,很好转移。
考虑拿出最长合法子序列后剩下的括号序列,可以发现一定是一段前缀右括号,一段后缀左括号。
这些可以插在最长合法自序列的前面后面或者几段括号之间,可以设
- 组合数和卡特兰数转移,卷一下
分,拉格朗日反演 分。
想想其他的做法,经典的我们可以拿括号序列上折线,设左括号有
起点在
所以折线不能经过下方的水平线
- 于是我们对于每一个
求出 ,就可以了。
6. AGC011F Train Service Planning
- 有一条被
个站台分为 段的铁路,站台标号为 ,铁路标号为 。 - 列车通过第
段所需时间为 ,铁路可能是双向的或单向的,你需要设计一张列车时刻表 。 - 对于所有的列车,要么从站台
前往站台 ,要么从站台 前往站台 。 - 在单向铁路上,不能有两辆相反方向的车互相穿过,列车只能在站点停车等待 。
- 给定一个常数
,若有一辆开往 的车在时刻 到达站点 ,在时刻 离开站点 , - 则下一辆车恰好在时刻
到达站点 ,在时刻 离开站点 。 - 求时间表中列车开一次来回的最短时间,或指出无解,
。
存在
设
则模
我们发现对于一条单向铁路,我们要求区间不交,
即
我们就只需要在一个数轴上,随便选个点开始走
满足走完
我们发现
所以我们可以设
7. AGC058C Planar Tree
- 圆周上有
个顶点。顶点按顺时针顺序编号为 到 ,顶点 上写着整数 。 - 接下来通过在顶点间连
条边使得顶点连成一棵生成树,需要满足以下两个条件。 - 如果
有边向连,需要满足 将边画成线段,不能有两条线段相交。 - 已知序列
,判断是否可以构造满足条件的生成树,有 组数据。 - 数据范围:
, 都出现过。
当时晚上在酒店会议室想了蛮久还是不会。首先可以找到性质:
- 相邻且权值相同的两点可以合并。
- 相邻的
可以删去 ,相邻的 可以删去 。
第一条比较显然,第二条证明(以
显然这样的相邻两点连边不劣于不连边,接下来证明删掉
我们如果不删掉
如果点集中没有
由于只有一段
如果点集中没有
如果点集中有
于是我们尽可能地用完这两个性质之后,我们会发现相邻的权值组合只剩下
考虑三个相邻点,以
先把第二个的点向第一个点连边,删去第二个点,发现正好又可以对第一、三个点使用性质合并。
最后相当于是删去了一个
可以多多手玩,发现只有 “
“
其中可以继续连边到符合条件的只有
zyf 和 zhy 有一种把一些权值连续段组合做优先级排序的做法,写了6k,恐怖如斯。
8. ZROI21联赛D15T3 水管工
- 给定一棵树,需要选择若干点对
,覆盖这些点对两点之间的简单路径,满足每条边都被覆盖 次。 - 如果存在
组 个相同点对,方案的权值就为 ,你需要求出所有方案的权值之和,对 取模。 - 数据范围:
。
思维难难难,首先考虑把一条树边拆成两条边,我们在每个结点处匹配边对。
我们构造一种合法方案,并钦定好每条边所属的简单路径。
显然对于同一条树边的两条边考虑是否交换它们所属的简单路径,我们发现几乎可以得到所有的匹配方案。
但是对于每组相同点对,它们的每种匹配方案两两对应相同,所以每个选择方案对应
因为选择方案权值为
设
题解设的
9. ZROI21省选D2T3 防御工事
- 给定一张
个点 条边的 个点,你需要在图中选择一个点作为首都。 - 再选择除首都外的一个点建立防御,此时权值定义给定点不经过建立防御的点且可以到达首都的数量的和。
- 定义选择此首都的权值为选择每个除首都外的点建立防御时的权值的和,求每个点作为首都的权值的最大值。
- 数据范围:
, ,保证图连通。
水一道题/se,图上的连通性问题建出圆方树,然后
可以在虚圆方树上进行换根 dp ,细节很多。
10. ARC061F Card Game for Three 超级加强版
- 三个人每个人有一堆牌,三堆牌中分别有
张牌,每张牌上写了下一个摸牌人的编号。 - 从第一个人开始摸牌,每次摸牌堆顶部的牌,有人把牌摸完就结束,计算
种方案中第一个人摸完的方案数。 - 数据范围:
, 。
水一道@xsi /kel/kel 。
首先考虑对于摸到牌的序列,枚举第一个人摸完的时候,第二个人和第三个人在序列中出现次数来计算答案。
设
线性计算系数:
- 标题: 好题合集
- 作者: 2yh_Z77
- 创建于 : 2022-09-28 22:02:16
- 更新于 : 2023-11-08 10:24:33
- 链接: https://zyh277.github.io/2022/09/28/好题合集/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。