*B.Splatter Painting
很容易联想到一种模型:
对于 v i v_i vi相同的操作,有用的最多只有 d ( d ≤ 10 ) d(d\leq 10) d(d≤10)个(相当于按时间戳维护了一个 d i d_i di递减的单调栈)
但每个点向外暴力染色在稠密图上复杂度依旧是 O ( n 2 ) O(n^2) O(n2)的。
需要找到一种方法使得复杂度降到 n d nd nd,考虑被染色点:
发现实际上每个点被染色的操作中只有 d d d个有用的,倒着加操作xjb D F S DFS DFS即可。
C.Tautonym Puzzle
字符集 100 100 100, ∣ S ∣ ≤ 200 |S|\leq 200 ∣S∣≤200显然就是每个字符出现两次的倍增构造:
一开始想成 112233... 112233... 112233...然而长度也是 2 n 2^n 2n级别的,真是zz。。。
正解:
设现在前半部分为 X X X,后半部分为 Y Y Y,考虑插入一个未出现的