专栏文章

NFLSPC #8 题解

算法·理论参与者 29已保存评论 33

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
32 条
当前快照
1 份
快照标识符
@mi3yxdi5
此快照首次捕获于
2025/11/18 10:42
3 个月前
此快照最后确认于
2025/12/01 21:49
3 个月前
查看原文

A. 轨道交通

考虑一维情况如何解决。可以排序后选择前 n+1n + 1 个点,找出其中颜色相同的一对,连接这对点并把前面不同颜色的删除,这样对于剩下 n1n - 1 种颜色,至少有 nn 个点,转化为等价子问题。 对于二维的情况,观察到限制实际上被放松了,因此按照 xx 轴排序后做一维的情况,容易验证不会相交。时间复杂度 O(n2logn)\mathcal O(n ^ 2 \log n)

B. 数嘟嘟嘟嘟嘟

首先,需要发现,在题目条件的限制下,有唯二解的题面,唯二解差异涉及的地方,一定只涉及恰好某两个数字。
下面考虑构造。不难发现,一共只有两个数字的情况,差异只可能是偶数,涉及恰好 xx 个宫,xx 个行,xx 个列,满足每行、每列、每宫都恰好含有涉及的两个数字各一个,而且不能由多个独立结构组成,否则解的数量不是 22 ,容易变为 2y2^y 其中 yy 为相互独立的该种结构数量。自然发现,该种结构是类似于哈密尔顿回路的。因此,直接枚举所有2个数字的组合,然后排除掉已经有这两个数字的行、列、宫。剩下的里面,可用的行、列、宫的最小值即为这两个数可能达到的最大差异值的一半,注意排除不可用的宫,如果一个宫只剩少于2个空格,这个宫也是不可用的。
找到全局可能达到的差异值最大的那组数,然后,在此基础上,搜索出一组满足条件的填法两个数字填法。这时,我们有很大概率有至少一组合法的数独解,然后再搜出任意一组整个数独的解,然后把输入的数和这个两个数字差异部分全部去掉,这样组合的补法就有唯二解了。

C. 追忆desuwa

不会

D. 如何区分北京东路和北京东路

容易把每个位置贡献拆开来,根据对称性发现每个位置对自己和对别人的贡献分别相同,并且都形如当前值乘以某个系数。容易发现每轮这两个系数分别是 xkx+bx\leftarrow kx+b 的形式,做 kk 次一次函数复合即可,这里类似快速幂。复杂度 O(n+logk)O(n+\log k)

E. 小 P,小 W,棒棒糖

考虑 n19n\leq19。此时利用 product trick 将所求化为每个点选一条与其相连的边或不选(不选的贡献是 tt)。此时状压每个点选没选,然后依次加入每条边更新 dp 数组,复杂度 O(m2n)O(m2^n)
对于 nn 大的情况,按除以 kk 的商分层,依次考虑每一层,同样加边并维护当前层和下一层的状态即可 O(m22k)O(m2^{2k})
此时我们发现可以删掉已经处理完与其相连的所有边的点,那么现在按连接的点的顺序加入边可以做到 O(m21.5k)O(m2^{1.5k})
我们先处理完连接一个和零个下一层点的当前层的点。对于剩下的点,我们在其连接的两个点之间建立虚边,形成了很多连通块,我们按非树边数量从大到小遍历每个连通块,访问一条边就处理其代表的上一层的点即可。可以证明此时复杂度 O(m2k)O(m2^k),可以通过。

F. 小 W,小 P,彩丝带

一次操作相当于选出一些下标,相邻的选出的下标奇偶性不同,然后全部 1-1,不能选 00
我们先考虑没有 00 的时候,答案一定是所有数的 max\max
那么考虑把有 00 的情况转化成没有 00 的情况,我们观察到 x0000yx00\dots 00y 可以做一个缩的操作。
如果有奇数个 00,缩成 x,yx, y,否则缩成 x+yx+y,正确性不难证明。
这样我们维护这个东西扫描的过程,类似一个栈,用线段树二分维护就行了,复杂度 O(nlogn)\mathcal O(n\log n)

G. NFLSPC

fif_i 表示第 ii 行作为 n,mn,m,以 ii 行为开始的后缀的方案数,每行的转移点是一个固定位置,只需要判一下区间最大值是否不超过 mm。最后枚举第二行的 nn 即可。复杂度 O(nlogn)O(n\log n)

H. APLSPC

不会

I. SFLSPC

不会

评论

33 条评论,欢迎与作者交流。

正在加载评论...