摘要:
def z_func(s: str) -> list: n = len(s) z = [0]*(n) l, r = 0, 0 for i in range(1, n): if i < r: z[i] = min(r-i, z[i-l]) while i+z[i] < n and s[z[i]] == 阅读全文
摘要:
C - Tak and Cards (atcoder.jp) 解: 设 dp[i][j][k]表示为:正在处理第i张牌,从一共i张牌中选j张,组成的数为 k 初始状态:dp[0][0][0]=1 if x+k<= A*n, dp[i+1][j+1][x+k]+=dp[i][j][k] 最后 累加,d 阅读全文