例如,序列A,Ctrl+ A,Ctrl+ C,Ctrl+ V生成4次击键两个A。
做了一些数学。对于任何N,使用A的x个数,一个Ctrl+ A,一个Ctrl+ C和y Ctrl+ V,可以生成最大((N-1)/ 2)2的A个数。
发布于 2018-03-27 09:32:24
下面是一个Python实现。计算N=50,000需要大约0.5秒。
def max_chars(n):
dp = [0] * (n+1)
for i in xrange(n):
dp[i+1] = max(dp[i+1], dp[i]+1) # press a
for j in xrange(i+3, min(i+7, n+1)):
dp[j] = max(dp[j], dp[i]*(j-i-1)) # press select all, copy, paste x (j-i-1)
return dp[n]
https://stackoverflow.com/questions/-100007796
复制相似问题