Ural 1513
来源:互联网 发布:软件设计师教程最新版 编辑:程序博客网 时间:2024/06/05 15:49
PRO IS HERE
题目大意就是将长度为n的全为1的数组,将其中某些1变为0,使得没有k个以上连续的1.
dp[i][0] 表示第i位是0满足条件的个数
dp[i][1] 表示第i位时1满足条件的个数
dp[i][1] = dp[i-1][0] + dp[i-1][1]
dp[i][0] = dp[i-k][1] + dp[i-k+1][1] +.... + dp[i-1][1]
我们用队列保存后面的求和。将复杂度降到O(N).
由于有大数,我直接用python了。
[n,k] = raw_input().split()n=int(n)k=int(k)dp=[]dp.append([0,1])a=[]head=0tail=0size=0sum = dp[0][1]que=[]que.append(dp[0][1])tail+=1for i in range(1,n+1):b=dp[i-1][1]+dp[i-1][0]while tail - head > k:sum-=que[head]head+=1dp.append([sum,b])sum += bque.append(b)tail+=1print dp[n][0]+dp[n][1]
- Ural 1513
- URAL
- 【ural】
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- URAL
- 集合合并
- python 字典 添加元素
- 百度4.25“外链大地震”
- 关于Jquery中ajax方法data参数用法的总结
- js实现录音连续播放
- Ural 1513
- 运用手势操作ListView中的Item
- 'nasmw'不是内部或外部命令,也不是可运行程序
- 在网易新闻的ipa发现的这个readme,用于新闻正文模版的
- C#删除文件夹文件
- oracle 11g导出时,解决空表不被导出的情况
- Android 加载大图片时内存溢出的问题
- ant命令总结
- JSSE应用实例