母牛递推

2023-11-03 21:40
文章标签 递推 母牛

本文主要是介绍母牛递推,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  

为情所困退学在家的钱哥毅然决定养猪!

在2010年1月1日,他买了一只刚出生的母猪幼仔,假设每只小母猪从第3个年头开始,每年的第一天都会生出4只小母猪,同时,钱哥会在每年的12月31日售出所有差一天就要年满5周岁的猪。

请计算:在第N年(2010年是第1年,2011是第2年,依次类推)的今天(5月4日),钱哥的养猪场会存栏多少只猪?

Input

输入数据第一行是一个整数T(0<T<=40),表示测试数据的组数.
接下来有T行,每行有一个数N(0<N<=40)表示一组测试数据,其含义如题目描述。

Output

对于每个测试实例,请输出在第N年的今天母猪的数量,每组数据的输出占一行。

Sample Input

3
2
3
5

Sample Output

1
5
29
#include<bits/stdc++.h>
using namespace std;
//input by bxd
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define repp(i,a,b) for(int i=(a);i>=(b);--i)
#define RI(n) scanf("%d",&(n))
#define RII(n,m) scanf("%d%d",&n,&m)
#define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
#define RS(s) scanf("%s",s);
#define ll long long
#define pb push_back
#define CLR(A,v)  memset(A,v,sizeof A)
//
#define inf 0x3f3f3f3f
const int N=100;
const int M=1000;
ll f[N];int main()
{int test,n;ll a[40+5]={0,1,0,4,4};ll sum[40+5]={0,1,1,5,9};rep(i,5,45){a[i]=(a[i-2]+a[i-3]+a[i-4])*4;sum[i]=sum[i-1]+a[i]-a[i-5];}int cas;RI(cas);while(cas--){int x;RI(x);cout<<sum[x]<<endl;}
}
View Code

 

转载于:https://www.cnblogs.com/bxd123/p/10871813.html

这篇关于母牛递推的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/341047

相关文章

uva 568 Just the Facts(n!打表递推)

题意是求n!的末尾第一个不为0的数字。 不用大数,特别的处理。 代码: #include <stdio.h>const int maxn = 10000 + 1;int f[maxn];int main(){#ifdef LOCALfreopen("in.txt", "r", stdin);#endif // LOCALf[0] = 1;for (int i = 1; i <=

HLJUOJ1128 HDU2046(数学递推)

1128: 递推求解专题练习三 Time Limit: 1 Sec   Memory Limit: 128 MB Submit: 8   Solved: 6 [ Submit][ Status][ Web Board] Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数。 例如n=3时,为2× 3方格,骨牌的铺放方案有三

【递推】【DP】-HDU-2064-汉诺塔③

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2064 题目描述:从最左边移到最右边柱子的过程中必须经过中间柱子。 解题思路: 进ACM组时候的考试题,当时虐我的题终于被我虐回来了。。一眼看出方程,1A了。。。呵呵。。满足一下我的虚荣心,,,抚慰一下受挫的心灵吧。 AC代码: #include <iostream>using names

【递推】【DP】-HDU-1996-汉诺塔⑥

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1996 题目描述:问三个柱子上放N个盘子,一共可能有多少种组合?(可以有柱子不放,放的时候依然满足下面盘子比上面盘子大) 解题思路: 对于放N个盘子,ans [ N ] = 3 + 6 * f ( N ) +6 * g ( N ) 这三项依次代表这N个盘子分成一堆,两堆,三堆时有多少种可能。排列

【递推】【DP】-HDU-1995-汉诺塔⑤

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1995 题目描述:计算汉诺塔中某个盘子的移动次数 解题思路: 想了好久,突然顿悟! 思路如下,所谓递推,即是前者与后者存在直接联系,由前者可以直接推出后者,因此必须有一端是已知的,这题里显然最下面的盘子只被动了一次,这就是开端,然后我们考虑紧挨着的两张盘子的递推关系,发现上面盘子是紧挨着的下面盘

【递推】【DP】-HDU-1207-汉诺塔②

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1207 题目描述:四柱汉诺塔 解题思路: 开始想了方程 f [ n ] = 2 * f [n - 2] + 3和 f [ n ] = 2 * f [n - 3] + 7。结果都不对,很郁闷,纠结半天之后,上网查攻略去了,啊!我就差一点了,但也是差了最为关键的一步! 正确的方程应该是: f [

蓝桥杯备赛day02:递推

斐波那契数列 #include <bits/stdc++.h>using namespace std;int main(){int n;cin>>n;int dp[n+1];dp[1]=1;dp[2]=1;for(int i = 3;i <= n;i++) dp[i] = dp[i-1]+dp[i-2];cout<<dp[n];return 0;} n = int(input())

递推—杭电2044 一只小蜜蜂...

http://acm.hdu.edu.cn/showproblem.php?pid=2044 一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 35811    Accepted Submission(s): 1317

数位dp n内1的个数递推找规律

1061:数字统计 查看提交统计提问 总时间限制:  1000ms  内存限制:  10000kB 描述 给出一个整数n(1<=n<=20000000),要求输出从1到n间所有数字中“1”的出现次数.例如:数字11,1到11间数字“1”的出现次数为4。(1,10,11,11出现4次,因为11有两个1,所以出现4次) 输入 一个整数n,(1<=n<=20000000)

C++编程-递推算法3

目录 先言 回顾 递推算法2 先言 一:平面分割问题 二:汉诺塔 后言 关于递推 后言 先言 本期是递推算法的最后一期了,今天主要解答上期的2个代码,并向大家说一下递推的最后几个注意点 回顾 递推算法2 先言 在上期中,我们讲解了递推算法的最后一道例题和递推关系,并留下了2道练习,本期就来解答 一:平面分割问题 #include<iostream>usi