2019牛客暑期多校训练营(第五场)

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\)种情况


J. three points 2

你可能感兴趣的:(2019牛客暑期多校训练营(第五场))