cf 414B Mashmokh and ACM 动态规划
题目链接:http://codeforces.com/problemset/problem/414/B
dp[i][j]表示长度为i、最后一个数字为j的合法序列总数
dp[1][1...2000]都是1
后面用dp[i-1][j] 去更新 dp[i][j*t] (1 <= j*t <= 2000) 即用因子去更新它的倍数
表面上看是2000^3的复杂度会爆 其实不用算那么多次
最外层循环是2000
分析第二层和第三层 需要算 2000/1 + 2000/2 + 2000/3 + 2000/4 + ... + 2000/2000 次
即2000 * (1/1 + 1/2 + 1/3 + ... + 1/2000)
后面的括号是一个【调和级数】 利用高等数学知识可知 它是有上限的 为自然对数e
所以本算法的时间复杂度实际上仅为 e*2000*2000
绰绰有余
因为下标从1开始计数
然后一开始fill的时候没注意看wa了几炮T^T
#include <cstdio> #include <cstdlib> #include <ctime> #include <iostream> #include <cmath> #include <cstring> #include <algorithm> #include <stack> #include <set> #include <queue> #include <vector>using namespace std;const int maxn = 2010; const int M = 1000000007;int dp[maxn][maxn];int main() {//freopen("in.txt", "r", stdin);int n, k;scanf("%d%d", &n, &k);fill(dp[1] + 1, dp[1] + 2001, 1);for(int i = 2; i <= k; i++){for(int j = 1; j <= 2000; j++){for(int t = 1; j*t <= 2000; t++){dp[i][j*t] = (dp[i][j*t] + dp[i-1][j]) % M;}}}int ans = 0;for(int i = 1; i <= n; i++)ans = (ans + dp[k][i]) % M;printf("%d\n", ans);return 0; }
转载于:https://www.cnblogs.com/dishu/p/4295089.html
cf 414B Mashmokh and ACM 动态规划相关推荐
- B. Mashmokh and ACM
414B. Mashmokh and ACM:题目 1400分就进入经典dp了 题意:给你1-n的数,构造一个长度为k的串,后一个数能整除前一个数 #include <bits/stdc++.h ...
- 算法比赛经历--蓝桥杯,天梯赛,力扣,牛客,cf,acwing,acm
第一次蓝桥杯,是去年,用c++写,混了个省二等. 今年蓝桥杯,用java写,水进上海前三,混了个省一等,国赛混了个二等 天梯赛混了个团三... 然后是查缺补漏,扩展算法知识点,真枯燥,临近白发,刷题太 ...
- 【DP专辑】ACM动态规划总结
转载请注明出处,谢谢. http://blog.csdn.net/cc_again?viewmode=list ---------- Accagain 2014年5月15日 ...
- ACM 动态规划(简称dp) 分类
转载自: http://blog.csdn.net/cc_again?viewmode=list ---------- Accagain 2014年5月15日 动态规划博客地 ...
- acm - 动态规划模板
动态规划 思维导图: 数字三角形模型 每次只能向下走或者向右走.从起点走到终点. 题目给定一个 n × n n \times n n×n 的矩阵,矩阵中的每个格子上有一个价值为 w w w 的物品.给 ...
- 杭电ACM 动态规划 1 数塔
Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大 ...
- CSP-J NOIP NOI数学与动态规划
NOIP数学 NOIp数学_M_oisture的博客-CSDN博客_noip数学 https://www.cnblogs.com/zzyh/p/7241897.html [总结]noip数学汇总 [总 ...
- 蓝桥杯总结!绝对干货!!
关于一个很菜很菜的菜鸡,菜到普通二本的校赛落选,如何,自费逆袭省一,再到国三 文章目录 个人情况 关于300到底值不值得冲 关于我如何备赛 第一坑:备赛刷LeetCode(寄) 数据结构课 语法基础 ...
- CCF认证训练行动路线图
通过CCF认证的训练题选自三个方面,一是CCF认证试题,二是使用北大百练的练习题等等,三是ACM-ICPC的练习题. CCF认证的试题是必须练习的,通过CCF试题的练习有助于了解试题风格特点.然而CC ...
最新文章
- linux 为什么 c语言,为什么C程序里一定要写main函数
- 安卓问题总结一(The connection to adb is down)
- Python的可变类型和不可变类型
- TensorFlow 2.0 mnist手写数字识别(CNN卷积神经网络)
- 十天冲刺---Day5
- 深度学习中batch-size介绍
- Everything搜索工具不能搜索硬盘文件夹问题解决
- mdpi Algorithms 期刊word 模板下载
- Excel使用VBA自动调整列宽
- php字符串转拼音,php程序如何把中文字符转换为拼音
- 解决问题Uncaught SyntaxError: The requested module ‘/node_modules/hls.js/dist/hls.js‘ does not provide
- 网络性能指标及测试方法
- 实际BCI应用:异步EEG/EOG BCI手抓取和释放的可行性
- 华为服务器管理工具uMATE
- 微信点餐小程序开发_分享微信点餐小程序可以实现哪些功能
- win10系统解决office16的VBE6EXT.OLB不能被加载的问题
- Linux与数据结构 2019-2-1
- 用python画星空的代码简单-【Python】手把手教你绘制星空旅游线路图
- Clion~Clion常用配置和插件
- IBM硬件默认的管理地址
热门文章
- android源代码 abi,Android内核源码Abi目录学习笔记
- linux卸载hadoop版本,centos6.5 安装hadoop1.2.1的教程详解【亲测版】
- python时间序列峰值检测_如何检测和过滤时间序列数据的峰值?
- eclipse关闭mysql数据库,有关于用eclipse连接mysql数据库出现的问题以及解决办法
- python中如何判断两个字符串是否相等_python怎样判断两个字符串是否相同
- c语言课程设计的摘要,投票程序设计-C语言课程设计摘要.doc
- linux 查询wwid命令,linux肿么查看硬盘的wwid
- idea直连linux部署项目,idea项目打包和在linux的部署
- c++中static_cast用法与uchar/char的区别
- 【机器视觉案例】(8) AI视觉,手势控制电脑鼠标,附python完整代码