A 染色
给
1∼n 染色,使得
∀i<j,如果
j−i 为质数,那么
i 和
j 颜色不同。
找规律。因为相邻的两个数差不为质数,最小的合数是
4,所以有 1 1 2 2 3 3 4 4 和 1 2 3 4 1 2 3 4 两个循环。
B 序列
给定一个长为
m 的序列
a,构造一个序列
b,满足
bi≤n,∑i=1maibi≤D。求
∑bi+kmini=1mbi 的最大值。
先将
a 从小到大排序,那么
∀i<j,有
bi≥bj。
b 的构成一定是由
S 个
n、一个
x、若干个
min 依次构成的。
ans=S×n+x+⌊∑i=S+2maiD−∑i=1Sai×n−x×as+1⌋×(k+m−S−1)
那么右式在枚举
S 后,唯一的未知数是
x,那么可以写成一个
f(x)=x+a⌊cb−x⌋ 的函数。推理发现这是一个多峰的锯齿函数。那么这个函数的最高峰可能出现
- 第一个波峰。
min 的优先级更高。
- 最后一个波峰。
min 的优先级更高。
- 结束点,没有形成波峰。
x 的优先级更高。
时间复杂度
O(T×nlogn)。
C 树上询问
给定一个
n 个点的树,有
m 个循环。每个询问给定
u,v,求存在多少个点对
(u,u+k) 的距离为
k。
令
t=lca(a,b),将路径拆成
u→t→v,令
x 为
u+k,那么点对有两类
-
x 在
u→t 上,
depx−x=depu。
-
x 在
t→v 上,
depx+x=2×dept−depu 。
可以发现在
x 和
u,v 已知的前提下,两边都是定值。求一条路径中某个数的次数,主席树板子。时间复杂度
O(mlogn)。
CF595E Edo and Magnets
只删边界上的点,共有四条边,那么会有
4k 条边有删的可能性。删的点一定是个前缀。所以
O(k4) 枚举。
CF506D Mr. Kitayuta’s Colorful Graph
再看一下
对于每个颜色新建一个图,没什么好的思路,无非暴力和并查集,空间时间进退两难。不如结合一下,对为某颜色的边的个数进行分类。
如果边数
≥n
那么就并查集,这样的并查集不会建立超过
n
个。否则就暴力,时间复杂度不会超过
O(nn
)。这不强制在线,为了建图的空间用 map 离线一下。
时间复杂度
O(nn
)。
CF1139C Edgy Trees
给定一个
n 个点的树,树边为红色或黑色。一个长度为
k 的路径序列是小天才的,当且仅当路径上至少有一条黑边。求序列个数,点可重复。
一条黑边不舒服,就把黑边删掉,相当于求了黑边的补集。那么现在有若棵树,每个树边是红边,对每个联通块点个数的
k 次幂求和即可,找规律 /doge。