Problem B

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 39   Accepted Submission(s) : 7

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

丁磊同志是163网站CEO,三十多岁了,为了促进中国的养猪事业,受网易董事会和数千员工的委托,不惜千万,投资养猪。一个IT人,毫无利己的动机,把中国人民的养猪事业当做他自己的事业,这是什么精神?这是国际互联主义的精神,这是共同IT主义的精神,每一个中国IT人都要学习这种精神。 ——摘自《赞“丁磊养猪”》






  2009年2月17日,丁磊公开表示,网易将投资数千万元在浙江建立养猪场,并将为此创办养猪网,将农业与互联网行业相结合。

  在当今互联网时代,人们见证了芙蓉姐姐的成名历程,也习惯了诸如凤姐等人的作秀炒作,按说区区一个“养猪事件”也应该见怪不怪了,但丁磊养猪消息一出,众人仍然被雷到了,雷得大家不得不去认真搜索一下这场互联网史上最严肃的作秀,以窥其养猪背后真正的目的。  但不管外界如何看待此事,引起广泛关注的 “丁磊养猪”计划逐渐从口号变为现实——

2009年11月,网易在浙江的生猪养殖基地已经选定,并已经准备好一切硬件条件。

  在2010年1月1日,基地引进一只刚出生的母猪幼仔,假设每只小母猪从第3个年头开始,每年的第一天都会生出4只小母猪,另外,基地也在每年的12月31日售出所有差一天就要年满5周岁的猪。请帮忙计算在第N年(2010年是第一年)的今天(6月13日),网易的养猪基地会存栏多少只猪?

Input

  输入数据第一行是一个整数T(0<T<=40).

  接下来有T行,每行有一个数N(0<N<=40)含义如上所述

Output

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

Sample Input

3
2
3
5

Sample Output

1
5
29

                                                                                              Statistic | Submit | Back
一开始打算用递推公式。。
结果推到姥姥家了还是WA。特殊情况要考虑太多

结束后才想到直接模拟即可了。复杂度也不过是(T+MAXN*3)
不过要点技巧

思考一下 每年的猪和什么有关系
前一年剩余的猪+出生的猪-被卖掉的猪
每一年剩余的猪用ANS[i]来表示 
而出生的猪和被卖掉的猪是否能用ANS[i]表示呢 可是可以用 只是似乎十分的麻烦 
要计算出第i-4 到 i-2年有多少新出生的猪总和 如果用ANS[]表示的话 还要考虑如何减去被卖掉的猪 又涉及前面的东西 十分麻烦
既然提到了新出生的猪 我们难道不能直接用一个数组 存储每年新出生的猪?
data[i]=(data[i-4]+data[i-3]+data[i-2])*4;
被卖的猪=i-5年前出生的猪=data[i-5]

所以ANS[i]=ANS[i-1]+data[i]-data[i-5];
先预处理ANS[MAXN]
复杂度(T+MAXN*3)
#include<stdio.h>
int data[41];
int ans[41];
int main()
{
int i,j;
data[1]=1;data[2]=0;data[3]=4;data[4]=4;data[5]=20;
ans[1]=1;ans[2]=1;ans[3]=5,ans[4]=9,ans[5]=29;
for(i=6;i<=40;i++)
{
for(j=i-4;j<=i-2;j++)
data[i]+=data[j]*4;
ans[i]=ans[i]+ans[i-1]+data[i]-data[i-5];
}
int N,n;
while(scanf("%d",&N)!=EOF)
{
while(N--)
{
scanf("%d",&n);
printf("%d\n",ans[n]);
}
}
return 0;
}

新生赛(2) problem 2 丁磊养猪的更多相关文章

  1. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  2. Codeforces 801 A.Vicious Keyboard & Jxnu Group Programming Ladder Tournament 2017江西师大新生赛 L1-2.叶神的字符串

    A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  3. SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

            题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音?       ...

  4. [ACTF2020 新生赛]BackupFile && [ACTF2020 新生赛]Upload &&[GYCTF2020]Blacklist

    [ACTF2020 新生赛]BackupFile 尝试找到源代码,加上题目是备份文件,猜测备份文件里面有网站的源代码,御剑扫描一下,就扫到index.php 访问index.php.bak 下载源代码 ...

  5. [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga

    [ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ...

  6. [BUUCTF]REVERSE——[ACTF新生赛2020]usualCrypt

    [ACTF新生赛2020]usualCrypt 附件 步骤: 例行检查,无壳,32位程序 32位ida载入,直接看main函数 逻辑很简单,一开始让我们输入一个字符串,然后该字符串经过sub_4010 ...

  7. [BUUCTF]REVERSE——[ACTF新生赛2020]rome

    [ACTF新生赛2020]rome 附件 步骤 无壳,32位程序 32位ida载入,根据提示字符串"You are correct!",找到关键函数func v15 = 'Q'; ...

  8. [BUUCTF]REVERSE——[ACTF新生赛2020]easyre

    [ACTF新生赛2020]easyre 附件 步骤 查壳,32位程序,upx壳儿 脱完壳儿,扔进ida 分析 一开始给我们定义了一个数组, v4=[42,70,39,34,78,44,34,40,73 ...

  9. 【贪心+中位数】【新生赛3 1007题】 Problem G (K)

    Problem G Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Sub ...

随机推荐

  1. c++编程碰到的奇怪问题与解决

    今天写一个工具,调试过程中莫名其妙崩溃,类某些成员变量指针很奇怪,为0x00003001.最后检查的结果居然是这样的: 文件class1.h: class1 { int a; int b; } 文件: ...

  2. 零拷贝概念 -- linux内核

    零拷贝(zero-copy) 备快速网络接口的主要技术. 零拷贝技术通过降低或消除关键通信路径影响速率的操作,降低传输数据的操作系统开销和协议处理开销,从而有效提高通信性能,实现快速传输数据. 零拷贝 ...

  3. python-布尔值

    布尔只有两个值:0,1 1或0 真或假 下面的值在作为布尔表达式的时候,会被解释器看作假(false) False    None    0   ""    ()    []   ...

  4. 怎么修改placeholder字体的css样式

    修改palceholder内文字的css样式 ::-webkit-input-placeholder{ color: red; font-size: 20px; line-height: 50px; ...

  5. json的js和C#操作

    C#端的WebService接口接收json格式数据,处理后以json格式返回result using System; using System.Collections.Generic; using ...

  6. Sql server 数据库 单用户切换为多用户

    使用master 下的sysprocesses 查询 db正在使用的spid 如 select spid from sysprocesseswhere dbid=DB_ID('DbName') 然后执 ...

  7. POJ 1698 (二分图的多重匹配)

    转载:http://www.cppblog.com/MatoNo1/archive/2011/03/26/142766.aspx 我们知道在一个图中,每个点最多只能匹配一条边的情况,是二分图的最大匹配 ...

  8. 【0】python核心编程,第二章

    1.print语句也支持将输入重定向到文件,示例: logfile = open('/tmp/mylog.txt', 'a') print >> logfile, 'Fatal error ...

  9. R语言数据合并使用merge数据追加使用rbind和cbind

    R语言中的横向数据合并merge及纵向数据合并rbind的使用 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同.处理的办法就是使用merge(x, y ,by.x = ,by.y ...

  10. linux curses函数库

    fedora20,安装yum install ncurses-devel 编译时:-lncurses 头文件:#include<curses.h> 参考:man ncurses \linu ...