CF 414B Mashmokh and ACM 动态规划
2024-08-31 14:15:29
题意:
给你两个数n和k。求满足以下条件的数列有多少个。
这个数列的长度是k: b[1], b[2], ……, b[k]。 并且 b[1] <= b[2] <= …… <= b[k] <= n;
而且,前一个数能被后一个数整除。
思路:
用dp[i][j]表示长度为i,最后一个数是j的序列有多少种。然后递推就可以了。
代码:
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std; typedef __int64 ll;
const ll MOD = (ll)1e9+; ll dp[][];
int n, k; int main() {
#ifdef Phantom01
freopen("D.txt", "r", stdin);
#endif // Phantom01 while (scanf("%d%d", &k, &n)!=EOF) {
memset(dp, , sizeof(dp));
for (int i = ; i <= k; i++)
dp[][i] = ;
for (int i = ; i < n; i++) {
for (int j = ; j <= k; j++) {
for (int l = j; l <= k; l += j)
dp[i+][l] = (dp[i+][l]+dp[i][j])%MOD;
}
}
ll ans = ;
for (int i = ; i <= k; i++)
ans = (ans+dp[n][i])%MOD; printf("%d\n", (int)ans);
} return ;
}
最新文章
- MemCache
- 复健小CM
- uimodalpresentationformsheet resize ios7
- Lua垃圾收集
- C#网络通信
- Oracle函数:求两个数的最小公倍数
- 简单的闭包运算(Closure)演示程序
- asp.net FileUpload 控件上传文件 以二进制的形式存入数据库并将图片显示出来
- 分布式搜索之搭建Solrcloud(Solr集群)
- Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined)
- Gym-100451B:Double Towers of Hanoi
- Java 中各种空(";";、\u0000、null)的区别?
- 缩点+染色+DFS codeforce467D
- PSP(3.16——3.22)以及周记录
- Hadoop视频教程汇总
- Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password:YES)解决方法
- iOS 代码调试
- CentOS7下安装配置Nginx
- ffemp语音转码
- 八、angularjs 中 filter在controller中的使用--避免多次遍历
热门文章
- python 3.x 学习笔记6 ( 迭代器 and 生成器 )
- BootStrap学习(一)——BootStrap入门
- 函数签名与消息转发:NSInvocation与NSMethodSignature
- /www: target is busy. 解决卸载磁盘目录繁忙的问题
- css兼容性问题总结
- 一:1.2【print&;input与变量和运算符】
- caioj 1157 线性筛选素数
- Docker之Mysql安装及配置
- 【转】Java集合间的相互转换
- ETL工具-informatica产品部分功能、接口采购梳理