1.
题意:个点划分为
个集合,构造双向边,使得每个点的度数是
。同时保证集合之间不存在连边。输出划分方案。
数据范围:。
题解:
- 首先根据直觉把
的情况判了。
无解,因为点数不够度数用。
无解,因为度数是奇数,不符合双向边性质。
- 其余情况都有解。当前情况是
。考虑想象
个点在一个环上,但是不连边,只是按照顺序放在一个环上。每个点在环上向当前位置的前
个点和后
个点都连边。如果
是奇数,那么当前情况下
是偶数,每个点和环上相对位置的点连边。
2.
题意:有个牛排,
个锅。第
个牛排需要的制作时间是
。每个牛排同时至多在一个锅中制作。一个锅同时至多制作一个牛排。每个牛排在多个锅中的制作时间相同。一个牛排可以在一个锅内制作好,也可以先在一个锅中制作一段时间,然后换到另一个锅中制作,只需满足总制作时间是
即可。最小化所有牛排的制作时间。输出构造方案。
数据范围:
题解:
- 很容易想到二分答案然后打出GG。
- 观察到答案至少是最大的
。可以保证每个牛排至多在两个锅内制作。
- 再观察到答案不会超过
。
- 然后按照锅的顺序摆放牛排即可。
3.
题意:数轴上有个点,特殊情况是
这两个点是相邻的,可以认为是环形数轴。同时有
个区间。特殊情况是对于区间
,如果
,那么可以认为该区间覆盖了
。保证这
个区间两两之间没有交集。对这些区间求一个并集,得到点集
。构造一个区间集合
使得这些区间的交集是
。
数据范围:
题解:
- 考虑
有多个未被覆盖的区间。称这些区间为空白区间。
- 设第
个空白区间是
,
的第
个答案区间是
。即构造的每个答案区间都留出一个空白区间。
4.
题意:个点,编号是
。
之间右边当且仅当
的二进制表示只有一个
。每个点涂黑色或者白色。对于每个点
,要求与自己相邻且颜色相同的点的个数不超过
。
数据范围:
题解:如果的二进制表示有奇数个
,则涂成黑色,否则涂成白色。
5.
题意:每个数被染了一种颜色
,其中
。每种颜色有且仅有
个数字染了该颜色。挑选
个区间满足下列要求。
- 第
个区间
,其中
染的颜色都是
且
。
内每个数至多被
个区间覆盖。
数据范围:。
题解:第种颜色的第
次出现的位置记作
。将每种颜色拆出
个区间,即
。将
个区间按照右端点排序。然后从左往右取,不和要求冲突的区间可被选择。
证明:按照上面的策略,只会出现某种颜色的区间不被选择的情况,不会出现冲突的情况,因为是按照不冲突的策略贪心选的,所以只要证明可以选够种颜色的区间即可。考虑反证法。如果一个颜色的
个区间都不能被选择,那么
内都存在
个区间右端点,但是
,但是至多存在
个不是该颜色的其他颜色“阻止”选择该颜色。因此与假设矛盾。
6.
题意:两个森林,节点数均为,边数分别为
。两个森林同时添加
使得两个森林还均是森林。问最多能添加多少条边。
数据范围:
题解:
- 考虑每个点和
的连通情况。
- 如果
在两个森林中都不与
连通,考虑直接连
。
- 如果
在两个森林中都与
连通,直接不考虑这个点。
- 如果
在第1个森林和
连通但是在第2个森林中不和
连通,直接存入第一个森林对应的栈,否则存入第二个森林对应的栈。
- 对于两个栈中的栈顶元素
,如果在各自森林中均不与
连通,则直接连
。
- 容易发现最后至少有一片森林变成一棵树,连边数达到了最大值
。
- 总结一下,这道题突破口就是和
的连通情况。
- 但是构造出来我才知道是对的,那么既然已经构造出来了,我为什么还要知道他是对的呢?构造题真是奇怪。
7.
题意:长度为的排列
,
是奇数。每次操作可以
一个奇数长度的前缀。不超过
次操作实现
。
数据范围:
题解:
- 如果没有奇数这个限制随便做,先把
移动到序列首部,再移动到应该的位置即可。
- 因为偶数不能独自操作,考虑绑定
让他们同时复位。举一个例子。
- 这样在
次操作下就完成了
。
2005

被折叠的 条评论
为什么被折叠?



