SDOI2025集训第一轮
day1
80+50+0 = 130,总榜 rk8,山东 rk5
T1
显然应该先
手推一下发现
看什么时候
进一步的,可得
也就是说,对于我们枚举的左上角的 rc 的矩形,里面的每个位置要么满足“行相等”,要么满足“列相等”,这个就可以再去 $2^{rc}$ 枚举了。
然后可能会有格子既满足“行相等”又满足“列相等”,容斥抵消计算即可。
进⼀步观察,当⼀个格⼦满⾜“⾏相等”时,该格⼦对于⾏的限制就不复存在,我们仅需考虑该格⼦对于列的限制;同理,当⼀个格⼦满⾜“列相等”时,该格⼦对于列的限制就不复存在,因此仅需考虑该格⼦对于⾏的限制。也就是说,每个格⼦的权值可以放在计算贡献时的统计部分进⾏,仅需考虑每⼀⾏中“列相等”格⼦的数量和每⼀列中“⾏相等”格⼦的数量即可。
然后每行每列贡献的计算可以预处理,这样就能做到
T2
首先有 d 是质数且 d%20==3 或 d<=10 这个限制,题目又保证数据随机,估测或者打个表看一下就知道有效点对实际上只有大概
由此容易想到枚举点对
发现存在两个或三个距离相同时就不好算了,可以随便手动定义距离相同时的字典序,这样就设前面的 d 严格小于后面的 d。
这样枚举一遍所有的 k 即可。复杂度
然后发现所有
考虑 bitset 的实质,我们是每 w=64 位压成一个 unsigned long long,然后通过 ull 的位运算来做的。那么这个能不能拓展到非 0/1 任意权值呢?
我们考虑每 B 个位置压成一块。。。
复杂度是
最优 B 取 logn,。。。
T3
观察“线图”的结构,会发现一个点周围的边进行一次变换之后,会形成一个团。每进行一次变换,这个图会变得更加“紧密”。
显然一个图在做一次线图变换后,连通性大致不会变(即原图中⼀个连通块不会在线图中被分裂成两个连通块)。
因为由若干个团构成,所以 k 阶线图的最⼤独⽴集就等价于 k-1 阶线图的最大匹配(选尽量多的边使得这些边两两无公共点)。
k=2
求 1 阶线图的最大匹配。
注意到线图具有较强的连通性质,那么对于每个连通块,最大匹配实际上就是
k=3
求 2 阶线图的最大匹配。
后面基本都同理,懒得写了,看题解吧。
上课
P9342
注意到从连续左/右走转向连续右/左走至多只有 log 次(因为每次调转方向都会翻倍),所以每次二分即可,复杂度
P9530
CF1442D
做了。
P6109
day2
90+0+15 = 105,总榜 rk27,山东 rk23
T1
要么认识了所有的 n 个人,要么没有认识所有人。也就是说我最后会认识 i 个人 (i < n),但是其他人都无法认识了。
设
转移就是
T2
四分树 or KDT。我不会。
T3
CRT 什么玩意的。不会。
上课
qoj7767
P6329
P7215
首先题目要求的就是找一个包含颜色最少的连通块,使得内部出现的颜色和外部的颜色两两不同。
考虑点分治,对于每一次分治出来的重心
P4183
不妨设 Bessie 从根节点出发,农民从叶子往上走,那么如果农民在 Bessie 到达某个点之前到达了这个点,那这个点的子树就“封锁”了。即要做到“准时到达封锁点”,这个用一个路径长度的不等式表示出来,就可以在根节点确定的时候,做一遍 dfs,数出有多少个封锁点就好了。那这样就有一个
day3
55+10+10 = 75,山东 rk18
T1
注意到按照
考虑合并
T2
推箱子转为箱子瞬移,然后最大流/费用流消圈。
T3
首先显然
讨论两边的角在上/下/中间,把式子写出来,dp/积分。
上课
P5576
qoj5034
uoj429
P3529
CF932G
day4
60+25+75 = 160,山东 rk9
T1
考虑先按照所有位置的取值都是 1~n 去构造出一个解。然后考虑调整法。先去保证每行不重复,把被 forbidden 的数改为最小的合法的数,然后如果影响了列上的合法性就再去调整列。如此重复。不难发现不合法的位置数量不增,所以最坏做
T2
不会。
T3
因为
这其实就是
上课
qoj5523
考虑直接状压 dp。设
考虑固定
我们只维护
agc031e
qoj5419
gym105336H
agc033e
qoj5090
qoj9237
day5
35+28+10=73,山东 rk25
T1
当
当
另解:点分治。
T2
T3
上课
qoj4812
首先,有一个
注意到,如果
分类讨论
考虑倒着做,每次往前加一个数,这样只需要记长度以及
qoj7677
CF1750G
arc138f
具体看 题解 吧。
P10145
qoj4893
day6
10+0+0=10,山东 rk29
T1
设 x 表示 123 最多的个数,y 表示 321 最多的个数。显然 x 越大,y 越小,那就直接双指针,考虑如何 check(x,y)。123 一定是选最前面的 x 个 1 和最后面的 x 个 3,321 同理。那这样就变成了一堆区间,中间的 2 的放置就直接排序+贪心放,这样是
考虑优化。其实只需要求出
T2
T3
上课
qoj4912
考虑这样的构造:有一个指针 p 和一个 26 bit 的内存,初始时 p=0。每次读取 p 指向的内存的值,如果为 0 则 p 回到 0,如果为 1 则
P10433
qoj8044
竞赛图最小割
题目:给定一张 n 个点的竞赛图 G,所有边的边权都是 1。求 G 中两两点对间的最小割。
P7921
qoj5305
day7
100+8+21=129,山东 rk14
T1
T2
T3
上课
loj3077
做了。
arc144e
P8495
CF1616G
P8950
day8
100+0+0=100,山东 rk12