关注
先考虑不存在连续且重复的子串的字符串(即字符串的每个字符与其左右相邻的字符均不相同)的数目,令dp[i]表示长度为i,字符集大小为s的这样的字符串的数目,容易得到其递推式子为dp[i]=(s - 1) * dp[i - 1],
dp[1] = s。之后考虑从这样的字符串中任意挑选一个字符c,将c替换成ccc,另外,可以选择将其他的字符c替换成cc。这样时间复杂度大概为O(l^2),代码如下:
def C(n, j):
p1, p2 = 1, 1
if j > n // 2:
j = n - j
for i in range(j):
p1 *= n - i
p2 *= i + 1
return p1 // p2
def solve(s, l):
if l < 3:
return 0
dp = [0] * (l + 1)
dp[1] = s
for i in range(2, l + 1):
dp[i] = dp[i - 1] * (s - 1)
ret = 0
for i in range((l - 3) // 2 + 1):
t = l - i - 2
ret += (i + 1) * C(t, i + 1) * dp[t]
return ret % (10 ** 9 + 7)
if __name__ == "__main__":
line = input().strip()
while line:
l, s = map(int, line.split())
print(solve(s, l))
line = input().strip()
查看原帖
2 1
相关推荐
10-16 10:32
东北大学 前端工程师 在校生实习:我觉得平时学校肯定有各种大作业吧。包装一下写项目里。特长那块喧宾夺主了,项目肯定是大头。特长里比如:熟悉vscode,这个感觉不具有吸引性。简要介绍你会什么语言,什么工具等就行了。同26找实习,我是个超级菜鸡😭大家一起加油
点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
248921次浏览 2019人参与
# 学历or实习经历,哪个更重要 #
41160次浏览 300人参与
# 北方华创开奖 #
22886次浏览 259人参与
# 地方国企笔面经互助 #
2571次浏览 6人参与
# 你最想要的公司福利是? #
40143次浏览 126人参与
# 选完offer后,你后悔学本专业吗 #
10698次浏览 77人参与
# 面试题刺客退退退 #
137241次浏览 2092人参与
# 国企/银行/研究所公司爆料 #
89769次浏览 412人参与
# 应届生被毁约被毁意向了怎么办 #
27200次浏览 238人参与
# 一觉醒来,我觉醒了超级打工人系统 #
2924次浏览 35人参与
# 机械应届生薪资要多少才合适? #
12399次浏览 60人参与
# 查收我的offer竞争力报告 #
16867次浏览 228人参与
# 校招入职后的感受 #
157002次浏览 1961人参与
# 你觉得第一学历对求职有影响吗? #
14901次浏览 121人参与
# 没有实习经历,还有机会进大厂吗 #
805213次浏览 13815人参与
# 我的工作日记 #
21235次浏览 270人参与
# 不给转正的实习,你还去吗 #
1517202次浏览 16971人参与
# 寒假躺平还是提前实习 #
58479次浏览 438人参与
# 总结:哪家公司面试体验感最差 #
25781次浏览 129人参与
# 秋招OC许愿 #
226767次浏览 1872人参与
# 如何写一份好简历 #
602422次浏览 8445人参与