DP 动态规划 Problem M 1013 母牛问题
来源:互联网 发布:武汉网络中控机 编辑:程序博客网 时间:2024/06/06 09:32
Problem M ID:1013
简单题意:初始有一头母牛,每年年初生一头母牛,所有新出生的母牛从出生后的第四个年头开始,每年都生一头母牛。求第n年共有多少头母牛。
解题思路形成过程:使用两个数组,一个数组a存放(所有)当年出生的母牛数,另一个数组b存放(所有)从第一年到当年的总母牛数。
n<=3时,a[1]=1;a[2]=1;a[3]=1; b[1]=1;b[2]=2;b[3]=3;
n>3时,a[i]=a[i-3]+a[i-1]; b[i]=b[i-1]+a[i-1];
因为n的最大值是54,可以对所有的n进行预处理,将所有的结果存入数组中。
然后根据输入的n,直接调用数组输出结果即可。
感想:同样是一个比较简单的dp问题,但是一开始使用了错误的状态转移方程式,并导致了WA。
分析的时候要抓住本质,要抓住最根本的规律。
注意预处理。
代码:
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int a[60],b[60];int main(){ int n; //freopen("1.txt","r",stdin); a[1]=1;a[2]=1;a[3]=1; b[1]=1;b[2]=2;b[3]=3; for(int i=4;i<57;++i) { a[i]=a[i-3]+a[i-1]; b[i]=b[i-1]+a[i-1]; } while(1) { scanf("%d",&n); if(n==0) return 0; printf("%d\n",b[n]); }}
0 0
- DP 动态规划 Problem M 1013 母牛问题
- 动态规划 Problem M
- 动态规划—Problem M
- DP 动态规划 Problem F 1006 数塔问题
- DP 动态规划 Problem J 1010 上楼梯问题
- DP 动态规划 Problem Q 1017 背包问题
- 动态规划——problem m
- 动态规划 DP问题
- 动态规划-母牛的故事
- DP 动态规划 Problem W 1023 背包
- 【动态规划】背包问题 - dp
- DP动态规划问题(1)
- DP动态规划问题 1300
- DP(动态规划)背包问题
- hdoj problem 1024Max Sum Plus Plus(动态规划&&DP问题)
- I'm Attacking the Darkness!题解动态规划DP
- poj1661 Help Jimmy-dp动态规划 (M)
- 17089 最大m子段和(scauoj、dp动态规划)
- 周赛题 (2015年浙江省赛)
- Chaikin细分曲线
- 层次遍历二叉树
- 重载内核全程分析笔记
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版本强势发布
- DP 动态规划 Problem M 1013 母牛问题
- iOS - 加速计程序的开发
- 图论判环模板
- innerHTML、getElementsByName()、getElementsByTagName()
- 系统和应用需求
- hdu2510 dfs打表
- 0--学习C++的意义
- Object类
- Android开源项目及库