专栏文章
SDOI2025集训第一轮
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipri0a3
- 此快照首次捕获于
- 2025/12/03 16:45 3 个月前
- 此快照最后确认于
- 2025/12/03 16:45 3 个月前
day1
80+50+0 = 130,总榜 rk8,山东 rk5
T1
显然应该先 枚举左上角的 r*c 的矩形,然后不难发现只需要知道前 r 行和前 c 列就能确定整个 n*m 的矩形了。
手推一下发现 ,然后再把 和 用这个式子拆开,就能得到 。
看什么时候 不合法。发现当且仅当式子右边三项分别为 0,0,1 或 1,1,0 时 = -1 or 2 不合法,这个可以刻画为 与 中至少一个相同。
进一步的,可得 与任意的 或任意的 均相等,将这两种记为“行相等”和“列相等”。
也就是说,对于我们枚举的左上角的 r*c 的矩形,里面的每个位置要么满足“行相等”,要么满足“列相等”,这个就可以再去 枚举了。
然后可能会有格子既满足“行相等”又满足“列相等”,容斥抵消计算即可。
进⼀步观察,当⼀个格⼦满⾜“⾏相等”时,该格⼦对于⾏的限制就不复存在,我们仅需考虑该格⼦对于列的限制;同理,当⼀个格⼦满⾜“列相等”时,该格⼦对于列的限制就不复存在,因此仅需考虑该格⼦对于⾏的限制。也就是说,每个格⼦的权值可以放在计算贡献时的统计部分进⾏,仅需考虑每⼀⾏中“列相等”格⼦的数量和每⼀列中“⾏相等”格⼦的数量即可。
然后每行每列贡献的计算可以预处理,这样就能做到 了。
T2
首先有 d 是质数且 d%20==3 或 d<=10 这个限制,题目又保证数据随机,估测或者打个表看一下就知道有效点对实际上只有大概 对。
由此容易想到枚举点对 并以 作为最后的中位数,考虑如何算答案。
发现存在两个或三个距离相同时就不好算了,可以随便手动定义距离相同时的字典序,这样就设前面的 d 严格小于后面的 d。
这样枚举一遍所有的 k 即可。复杂度 。
然后发现所有 的 sub2 就可以直接bitset优化,,这样就一共有 50pts 了。
考虑 bitset 的实质,我们是每 w=64 位压成一个 unsigned long long,然后通过 ull 的位运算来做的。那么这个能不能拓展到非 0/1 任意权值呢?
我们考虑每 B 个位置压成一块。。。
复杂度是 。。。
最优 B 取 logn,。。。
T3
观察“线图”的结构,会发现一个点周围的边进行一次变换之后,会形成一个团。每进行一次变换,这个图会变得更加“紧密”。
显然一个图在做一次线图变换后,连通性大致不会变(即原图中⼀个连通块不会在线图中被分裂成两个连通块)。
因为由若干个团构成,所以 k 阶线图的最⼤独⽴集就等价于 k-1 阶线图的最大匹配(选尽量多的边使得这些边两两无公共点)。
k=2
求 1 阶线图的最大匹配。
注意到线图具有较强的连通性质,那么对于每个连通块,最大匹配实际上就是 。而 1 阶线图的点数 = 原图的边数,所以答案 = ,其中 m 是原图中一个连通块的边数。
k=3
求 2 阶线图的最大匹配。
后面基本都同理,懒得写了,看题解吧。
上课
P9342
注意到从连续左/右走转向连续右/左走至多只有 log 次(因为每次调转方向都会翻倍),所以每次二分即可,复杂度 。
P9530
CF1442D
做了。
P6109
day2
90+0+15 = 105,总榜 rk27,山东 rk23
T1
要么认识了所有的 n 个人,要么没有认识所有人。也就是说我最后会认识 i 个人 (i < n),但是其他人都无法认识了。
设 表示最终我的社交网络里恰好有 i 个人的概率,那么答案其实就是 。
转移就是 。
T2
四分树 or KDT。我不会。
T3
CRT 什么玩意的。不会。
上课
qoj7767
P6329
P7215
首先题目要求的就是找一个包含颜色最少的连通块,使得内部出现的颜色和外部的颜色两两不同。
考虑点分治,对于每一次分治出来的重心 ,我们求出仅在 子树中的且包含 的最小连通块。具体就直接把需要加入的颜色加入队列,直到不需要加为止。这样一定能求出所有的答案,因为如果不包含 ,要么会在上一层的分治重心中算,要么会在下一层儿子那里的分治重心算。
P4183
不妨设 Bessie 从根节点出发,农民从叶子往上走,那么如果农民在 Bessie 到达某个点之前到达了这个点,那这个点的子树就“封锁”了。即要做到“准时到达封锁点”,这个用一个路径长度的不等式表示出来,就可以在根节点确定的时候,做一遍 dfs,数出有多少个封锁点就好了。那这样就有一个 的做法了。然后把式子形式化地表示一下,树上差分,点分治,做一个“不等式点对的点权统计”,就行了。
day3
55+10+10 = 75,山东 rk18
T1
注意到按照 从小到大来挑战关卡一定是最优的。所以对于剩下所有的关卡中 的最小的 ,在他的前驱 挑战完之后就一定会直接挑战 。
考虑合并 和 ,合并之后的 。用小根堆+并查集维护即可。
T2
推箱子转为箱子瞬移,然后最大流/费用流消圈。
T3
首先显然 时,答案为 0。所以 。
讨论两边的角在上/下/中间,把式子写出来,dp/积分。
上课
P5576
qoj5034
uoj429
P3529
CF932G
day4
60+25+75 = 160,山东 rk9
T1
考虑先按照所有位置的取值都是 1~n 去构造出一个解。然后考虑调整法。先去保证每行不重复,把被 forbidden 的数改为最小的合法的数,然后如果影响了列上的合法性就再去调整列。如此重复。不难发现不合法的位置数量不增,所以最坏做 轮就会找到一组解。这样的复杂度最劣是 的。但是随机数据能过。
T2
不会。
T3
因为 ,所以显然当 时每次最优一定是选 ,直接记搜即可。
这其实就是 是有限小数时。当 不是有限小数时,它一定是一个有限小数+循环节组成。考虑 是有限小数的做法的过程,实际上可以看作是矩阵乘法,并且可以证明循环小数部分的矩阵的无限次方是收敛的,所以直接求逆即可。
上课
qoj5523
考虑直接状压 dp。设 表示 能否通过 点集中的点到达 ,加上转移的复杂度是 。
考虑固定 。只用维护 ,算答案的时候枚举两边的状态合并,这样可以做到 。
我们只维护 ,将 放到 dp 的状态里,也就是 的第 位代表能否到达 。复杂度是 ,就能过了。
agc031e
qoj5419
gym105336H
agc033e
qoj5090
qoj9237
day5
35+28+10=73,山东 rk25
T1
当 是奇数时,枚举哪个点是重心,用总方案数减去不合法的即可做到 。考虑组合意义+递推可以做到 。
当 是偶数时,容易发现可以作为中心的一定是一条链,中间的点全是 。如果固定这条链,考虑链上任意一个点 ,设 为满足如下条件的点的集合:在链上,编号小于 ,且到 的路径上不含有其他小于 的点。于是 ,且只需要对 做一次容斥即可统计 的贡献。这样我们将最小值的贡献拆到了每个点上。上述过程和链的形态没有关系,只需要容斥涉及到的点都是可能的重心即可。用并查集维护,时间复杂度 。
另解:点分治。
T2
T3
上课
qoj4812
首先,有一个 的 dp,设 表示 的元素之和为 且最后一个元素为 的方案数。
注意到,如果 ,那么 会落在 中,所以 。
分类讨论 的大小。如果 就暴力 dp,复杂度 。如果 ,直接把 记到状态里可以得到一个 的做法,平衡得到 。
考虑倒着做,每次往前加一个数,这样只需要记长度以及 , 是 的,平衡得到 。
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 则 。移动 p 后将原先 p 指向的内存的值反转。p 第一次移动到 i 恰好需要 步。每次调用会修改不超过 5 bit 的 p,以及 1 bit 的内存,总共不超过 6 bit。
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
T1
T2
T3
上课
P11986
uoj950
P11921
CF1060G
uoj940
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...