杭电ACM2018--母牛的故事

母牛的故事

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 120200    Accepted Submission(s): 58541

Problem Description

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

Input

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。

Output

对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。

Sample Input

2
4
5
0

Sample Output

2
4
6

这道题涉及的内容是递归化成递推,这类型的题以后会演化成动态规划,重在练习和思考!!
首先拿到题目想到的就是动物繁殖典型例子斐波那契数列,fn=f(n-1)+f(n-2)
同样的,本题可以枚举他前十个数来观察,很多题目都可以这么做,ACM一部分感觉就是在玩小学找规律T T
回到正题··然后得到fn=f(n-1)+f(n-3)
有了这个就可以直接递归了AC了~~
再深入一些学习这道题,把繁琐的递归转成迭代,我个人是用两个概念来引导自己思考

1.有所有状态的状态方程
2.找出各个状态的转换式
状态方程即是  fn=f(n-1)+f(n-3)
转换式可以这么尝试,举个例子吧~
如:

假如每年的牛数量都是已知的

第四年的牛等于第三年的牛加第一年的牛
第五年的牛等于第四年的牛加第二年的牛 
fn=f1+f3;   这里完成了fn的状态转化

第一年的牛过了一年成了第二年的牛

f1=f2;  这里完成了f1的状态转化

第三年的牛过了一年成了第四年的牛

f2=f3;  这里是记录第二年过了一年成第三年没用上的
f3=fn;  这里完成了f2的状态转化

然后就可以有以下代码

#include<stdio.h>
//递归
 int sum(int n)
{
    if (n <= 4) return n;
    else return (sum(n-1) + sum(n - 3));
}
int main()
{
    int n;
    while (~scanf("%d", &n) != EOF&&n!=0)
        printf("%d\n", sum(n));
    getchar();
    return 0;
}
#include<stdio.h>
//迭代
int main()
{
    int f1,f2,f3,fn,i,n;
    while(~scanf("%d",&n)&&n!=0)
    {
        if(n==1)fn=1;
        else if(n==2)fn=2;
        else if(n==3)fn=3;
        else
        {
            f1=1;
            f2=2;
            f3=3;
            for(i=4;i<=n;i++)
            {
                fn=f1+f3;
                f1=f2;
                f2=f3;
                f3=fn;
            }
        }
        printf("%d\n",fn);
    }
    return 0;
 } 

原文地址:https://www.cnblogs.com/lightice/p/10261270.html

时间: 2024-10-03 16:33:38

杭电ACM2018--母牛的故事的相关文章

杭电2018母牛的故事

program description 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? input 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述.n=0表示输入数据的结束,不做处理. output 对于每个测试实例,输出在第n年的时候母牛的数量.每个输出占一行. sample input 2 4 5 0 sample output 2 4 6 不多说,代码

杭电 1408 盐水的故事(double精度问题)

盐水的故事 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13446    Accepted Submission(s): 3272 Problem Description 挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下:然后滴二滴,停一下:再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的

杭电ACM1408——盐水的故事

简单的题目,RT,就可以写出代码.需要注意的是类型的应用,应该用浮点型. 下面的是AC的代码: #include <iostream> using namespace std; int main() { double VUL, D; int time, i, flag; while(cin >> VUL >> D) { time = 0; i = 1; flag = 0; while(VUL > 0) { for(int j = 1; j <= i; j++

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

【转】对于杭电OJ题目的分类

[好像博客园不能直接转载,所以我复制过来了..] 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDI

杭电 2201

熊猫阿波的故事 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4141    Accepted Submission(s): 3209 Problem Description 凡看过功夫熊猫这部电影的人都会对影片中那只憨憨的熊猫阿波留下相当深的印象,胖胖的熊猫阿波自从打败了凶狠强悍的雪豹泰龙以后,在和平谷的地位是越来越高,成为谷中第一

杭电 HDU 1164 Eddy&#39;s research I

Eddy's research I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7117    Accepted Submission(s): 4268 Problem Description Eddy's interest is very extensive, recently  he is interested in prime

hdu 1016 Prime Ring Problem DFS解法 纪念我在杭电的第一百题

Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 29577    Accepted Submission(s): 13188 Problem Description A ring is compose of n circles as shown in diagram. Put natural num

一个人的旅行 HDU杭电2066【dijkstra算法】

http://acm.hdu.edu.cn/showproblem.php?pid=2066 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景--草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女--眼看寒假就快到了,这么一大段时间,可不