Kickstart Round E 2017

https://code.google.com/codejam/contest/12234486/dashboard#s=a
https://zhuanlan.zhihu.com/p/28829564

Problem A. Copy & Paste
肯定是DP了,要知道转移状态肯定要包含buffer里面是什么string,
不好确定这个string是什么!到这里有点卡住了。
其实有个套路的,不知道是什么,枚举一下就好了,反正就N^2个,N也不是很大
最近怎么感觉可以根据数据的大小来判断可能用什么方法?

import sys

out_to_file = []

def slove(s):
    # no words in clipboard is not considered in dp array
    dp=[[[999999 for _ in range(len(s)+1)] for _ in range(len(s))] for _ in range(len(s))]
    dp[0][0][1] = 2
    # no words in clipboard is considered in dp array
    mi = [i+1 for i in range(len(s))]
    
    for i in range(0, len(s)-1):
        # only loop for valid substring
        for j in range(i+1):
            for k in range(j+1, i+2):
                dp[i+1][j][k] = min(dp[i+1][j][k], dp[i][j][k]+1)
                mi[i+1] = min(mi[i+1], dp[i+1][j][k])
                
                if s[i+1:].startswith(s[j:k]):
                    dp[i+k-j][j][k] = min(dp[i+k-j][j][k], dp[i][j][k]+1)
                    dp[i+k-j][j][k] = min(dp[i+k-j][j][k], mi[i]+2)
                    mi[i+k-j] = min(mi[i+k-j], dp[i+k-j][j][k])
                    
    return min(len(s), mi[len(s)-1])
    
    
sys.stdin = open('submit.in', 'r')
cases = int(input())
for i_ in range(cases):
    print(i_)
    s=input()
    out_to_file.append(slove(s))
    
fp = open('submit.out', 'w')
for i_,c_ in enumerate(out_to_file):
    fp.write('Case #%d: %s\n'%(i_+1, str(c_)))
#    fp.write('Case #%d: %s\n'%(i_+1,' '.join(list(map(str,c_)))))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 6,550评论 1 9
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,201评论 0 38
  • 十七岁那年夏天,我落榜了。 在那个黑色的七月里,我痛苦失望迷茫…抱怨命运的不公。母亲猜透了我的心事,说你要是愿意回...
    孔孟之乡阅读 438评论 1 4
  • 喜欢古村老院,看着白墙黑瓦透着历史风韵,或肥或瘦或美或臭,它们静静矗立在人世间,记录着兴衰荣辱,看着碌碌人生演绎啼...
    哆啦阅读 822评论 0 0
  • 前两天一个朋友问我地址,说买了点东西,这几天又要出门,怕快递到了取不到,然后先放我这里。 我没想太多把地址给...
    祝元元元阅读 253评论 0 2

友情链接更多精彩内容