A. digits 2
solved by sdcgvhgj 17min
做法 做过类似题,写了个bfs,其实n个n拼起来就好,因为不需要数最小
B. generator 1
solved by sdcgvhgj 100min
题意 求(x_n=a*x_{n-1}+b*x_{n-2} (mod p),n=10^{(10^6)})
做法 想了半天怎么(O(n))十进制转二进制,其实用十进制快速幂就好了。。。超时两发最后拆了矩阵乘
复盘 一开始总想着转化成二进制后施展,后来发现不转二进制也能做。
C. generator 2
upsolved by sdcgvhgj
题意 (x_i=(a*x_{i-1}+b) mod p),求最小的i使得(x_i=v),(q≤1e3, p≤1e9+9)
做法
- 求出通项直接每次询问bsgs的复杂度是(O(q*sqrt p)),TLE
- 其实把bsgs的预处理部分调大点就能更快查询了,怎么这都没想到。。。
D. generator 3
E. independent set 1
upsolved
做法 考虑 DP,(dp[mask]) 表示,(mask) 集合的点最大独立集。对 mask 集合中 id 最小的点,是否在独立集中进行枚举即可。
复盘
- 比赛时 rdc 的意识被 memset 折半,比赛后半段在划。
- 活鱼提出了一个很玄学的算贡献的做法,通过了样例,但复杂度解体了。
- 比赛的时候,在梦游啊。
F. maximum clique 1
识破 发现这是个栩栩如生的二分图。
复盘
- 一开始想施展二分图多重匹配,左集放元素,右集放“特征”,然后建不出图,解体。
- 意识到 bitcount 奇偶性相同,海明距离不可能为 1,二分图!
- 二分图最大独立集输出解遇到了麻烦。
G. subsequence 1
题意 给定两个0~9字符序列s,t,要求计算s中有多少个子序列其十进制表示大于t
做法
DP搞一搞
- (f[i][j]:)表示用(s)前(i)个字符匹配(t)前(j)个字符的方案数,其中(s[i] = t[j])
- 算完f数组,然后枚举答案序列与(t)的(lcp),暴力后缀和维护,统计一下就好
H. subsequence 2
题意 给定一些限制条件,求满足条件字符串
做法 cf某场gym有类似的题目,做法就是根据限制条件建DAG,然后拓扑序即可
I. three points 1
solved by sdcgvhgj 174min
题意 在矩形内放一个给定边长的三角形
做法 枚举哪个角放到左下角,枚举哪条边尽可能靠下,矩形的长和宽也可以交换,共(3*2*2=12)种情况