hdu1723Distribute Message(初学动态规划)
来源:互联网 发布:mina 接收不到数据 编辑:程序博客网 时间:2024/06/06 08:39
题目大意:从队首报数到n,每次最多报m个人,共有多少方案
思路:首先,找递推式,每次第一个人直接到后面m个人把到达第一个人的方案数加给后面那些人(其实这样的思路逆过来想就是你要找到达第n个人方案数,你必定要找到达这个人的前m个人分别的方案数,把到达这些人的方案数加给n,然后分别去找这m个人的前m个人的方案数加给他,但只要超过队首就不执行,这里面存在着递归思想,我们用数组递推也就是所谓的动态规划)
代码如下:
1.从队前往队后操作:
#include<stdio.h>#include<string.h>int main(){int i,j,n,m,dp[40];while(~scanf("%d%d",&n,&m)&&(n||m)){memset(dp,0,sizeof(dp));dp[0]=1;for(i=0;i<n;i++)for(j=i+1;j<=m+i&&j<n;j++){dp[j]+=dp[i];}printf("%d\n",dp[n-1]);}return 0;}
2.从队后往队前要递归,代码还没想好
阅读全文
0 0
- hdu1723Distribute Message(初学动态规划)
- 初学动态规划
- 动态规划初学
- 动态规划初学
- 初学动态规划--01背包
- 动态规划C语言初学
- HDU 1723 动态规划(DP) Distribute Message
- 【初学动态规划】之数塔
- 【初学动态规划】之装箱问题
- 【初学动态规划】之01背包问题
- 动态规划 --- 矩阵连乘初学整合
- 【初学动态规划】之最长不降子序列
- 【课堂笔记之动态规划】Day 1.初学动归
- 【动态规划(一)】动态规划基础
- 51Nod1257(初学01分数规划)
- 动态规划(1)
- 动态规划(2)
- 动态规划(3)
- 反射第三步 : 通过反射获取某一个类的 构造器Constructor 并通过反射创建对象
- 利用nexus构建maven、docker、npm、gradle私服仓库
- 2017杰作- DBMS_STATS.GATHER_TABLE_STATS详解
- 图像分析:二值图像连通域标记
- nginx-tomcat
- hdu1723Distribute Message(初学动态规划)
- java中父类的静态代码块,非静态代码块,构造方法,子类的静态代码块,构造方法等先后执行顺序
- bufferedReader 读取文件第一行第一个字符丢失问题
- Codeforces 840A Leha and Function
- viewpager自动轮播 加小圆点
- leetcode[Minimum Index Sum of Two Lists]//待整理多种解法
- IPC机制(一)
- 328. Odd Even Linked List
- BZOJ 3930 [CQOI2015]选数 & 51nod 1244 莫比乌斯函数之和 & BZOJ 2301