CodeForces 414B Mashmokh and ACM (DP)
来源:互联网 发布:php加密函数 编辑:程序博客网 时间:2024/06/05 11:04
大致题意:
给出一个n和k,让你从 1 -- n 这n个数中,选出 k个(可重复)组成一个序列,使这个序列满足任意一个数都能够整除该序列中它前面的那个数。求这样的序列的个数。
分析:
由于每一个数都与其前面的一个数直接相关,每个数必须是其前面一个数的倍数。那么我们可以定义一个跟末尾数字有关的状态,我们用dp[ i ] [ j ] 表示长度为 i 并且最后一位是 j 的序列 ,那么状态转移方程:dp [ i ] [ j ] = sum(dp [ i-1 ] [ x ] ) x 是 j 前面满足( j % x == 0)的数。
因为是多组测试,在开始的时候直接打表可以节省时间。
比较雷的是,刚开始写的循环是
for(int i=1;i<2010;i++)
{for(int j=1;j<2010;j++){for(int q=1;q<=j;q++){if(j%q==0){dp[i][j] += dp[i-1][q];dp[i][j] %= MOD;}}}}
换成这样会好一点。至少就不会T了。。对于每一个 i ,都有从1开始的 j 去控制的 q ,来增加dp [ i ] [ ] ,这样一圈循环下来,可以完全更新~
for(int i=1;i<2010;i++){for(int j=1;j<2010;j++){for(int q=j;q<2010;q=q+j){dp[i][q] += dp[i-1][j];dp[i][q] %= MOD; }}}
0 0
- CodeForces 414B--Mashmokh and ACM (dp)
- Mashmokh and ACM - CodeForces 414B dp
- CodeForces 414B Mashmokh and ACM (DP)
- Codeforces 414B Mashmokh and ACM(DP)
- codeforces 414B B. Mashmokh and ACM(dp)
- Codeforces 414b Mashmokh and ACM(简单DP)
- CodeForces 414B Mashmokh and ACM dp + 决策总数
- Codeforces 414B Mashmokh and ACM【预处理+dp】
- codeforces 414B Mashmokh and ACM
- codeforces--414B--Mashmokh and ACM
- codeforces-414B-Mashmokh and ACM
- Codeforces 414b Mashmokh and ACM
- Codeforces 414A Mashmokh and ACM(dp)
- Codeforces Round #240 (Div. 1)---B.Mashmokh and ACM(dp)
- Codeforces#414B——Mashmokh and ACM
- codeforces 240. dp Mashmokh and ACM
- Codeforces 415D Mashmokh and ACM DP
- CF B. Mashmokh and ACM dp
- OpenWrt系列教程汇总 & OpenWrt简体中文Wiki
- window下rocketmq启动报Load JVM error
- cocos2d-x-3.2 Box2d物理引擎起步
- adobe reader x 10增加书签功能
- Apache2中文手册
- CodeForces 414B Mashmokh and ACM (DP)
- OpenWrt系列教程汇总 & OpenWrt简体中文Wiki
- ExtJS学习-----------Ext.Number,ExtJS对javascript中的Number的扩展
- hghhjkh
- Permission denied (publickey)
- HDU--1861:游船出租
- linux中的分段和分页
- Matlab学习笔记 sparse与full函数
- hdu 2813 One fihgt one(二分图最小权匹配KM)