Mashmokh and ACM(Codeforces Round #240)
来源:互联网 发布:python 贝叶斯分类器 编辑:程序博客网 时间:2024/05/16 15:09
又是DP没做出来。。饮恨!!明明已经想到状态转移了,却因为对时间复杂度的估计错误而错过了,又一次犯这样的错误!
题库链接:http://codeforces.com/problemset/problem/414/B
题意:求 不同的 长度为k的单调非递减序列的 数量,其中所有元素不大于n,且前一个元素能够整除后一个元素
思路:记d[i][j]为一个序列中第i项为j的情况。分析题意可知,元素Bi的可能取值只与Bi-1(第i-1个元素)有关,Bi只能是Bi-1的倍数且取值不超过n
则状态转移方程为:d[i][z]=d[i][z]+d[i-1][j] -----------(z是j是倍数)
代码如下:
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;#define MOD 1000000007int d[2005][2005];int main(){ int n,k; while(scanf("%d%d",&n,&k)!=EOF){ memset(d,0,sizeof(d)); int i,j,z; for(i=1;i<=n;i++) d[1][i]=1; for(i=1;i<=k;i++){ for(j=1;j<=n;j++){ for(z=j;z<=n;z+=j) d[i+1][z]=(d[i+1][z]+d[i][j])%MOD; } } int ans=0; for(i=1;i<=n;i++) ans=(ans+d[k][i])%MOD; printf("%d\n",ans); } return 0;}
以上代码已AC,不过仍可小小优化,夜深了还是去睡觉吧。
0 0
- Mashmokh and ACM(Codeforces Round #240)
- Codeforces Round #240 (Div. 2) D. Mashmokh and ACM
- Codeforces Round #240 (Div. 1)---B.Mashmokh and ACM(dp)
- Codeforces Round #240 (Div. 1)B---Mashmokh and ACM(水dp)
- Codeforces Round #240 (Div. 2) A. Mashmokh and Lights
- Codeforces Round #240 (Div. 2)B. Mashmokh and Tokens
- Codeforces Round #240 (Div. 2) C. Mashmokh and Numbers
- Codeforces Round #240 (Div. 2) Mashmokh and Numbers
- Codeforces 414A Mashmokh and ACM(dp)
- CodeForces 414B--Mashmokh and ACM (dp)
- Mashmokh and ACM - CodeForces 414B dp
- codeforces 414B Mashmokh and ACM
- codeforces--414B--Mashmokh and ACM
- codeforces 240. dp Mashmokh and ACM
- codeforces-414B-Mashmokh and ACM
- Codeforces 414b Mashmokh and ACM
- Codeforces 415D Mashmokh and ACM DP
- cf 240 Mashmokh and ACM
- ftp报错 200 port command successful. consider using pasv 425 failed to establish connection
- macos+apache+php+phpmyadmin 的整合过程梳理
- 成绩统计--解题思路
- 游戏服务器里GUID的生成算法
- Java初探
- Mashmokh and ACM(Codeforces Round #240)
- Python六大开源框架对比:Web2py略胜一筹
- python 第一课,获取信息
- Oracle忘记用户名和密码的解决方案
- leetcode(word break)
- Linux 之Cut命令详解
- QQ通信原理及QQ是怎么穿透内网进行通信的?
- zoj-3772-Calculate the Function-线段树+矩阵
- Pascal's Triangle