主题:求助求助,学校练习,明天交了
leening710
[专家分:0] 发布于 2009-11-12 15:26:00
科学家在热带森林中发现了一种热树的小动物。取名叫“吱吱“。“吱吱“的生长繁殖过程很有规律,每队小“吱吱“经过x个月就长成一对大“吱吱“,每对大“吱吱“每个月都产下Y对小“吱吱“。假设开始时有一对小“吱吱“,并且每队“吱吱“都不死,问:过Z个月后,共有多少对“吱吱“?(X≥1,Y≥1,1≤Z≤24)
(注:若当前是1月,则“过”2个月,是表示到三月的时候)
输入(a5.in)一行,X,Y,Z的值。和数间用空格隔开
输出(a5.out)一行,“吱吱”的总对数
样例:
输入:2 2 4
输出:11
回复列表 (共12个回复)
沙发
leening710 [专家分:0] 发布于 2009-11-12 18:05:00
来个高手帮帮吧
板凳
leening710 [专家分:0] 发布于 2009-11-12 18:13:00
不用源程序,告诉我思路就可以
3 楼
cgl_lgs [专家分:21040] 发布于 2009-11-13 00:38:00
如果不用公式法,最简单的办法就是:
记录成年对数ZZ
记录新生对数ZZNEW
循环从1到Z,步长为X
记录原ZZ的Y倍值到BORNZZ
ZZ为BORNZZ再加上ZZNEW
ZZNEW值改为BORNZZ
结束循环
如果Z不能整除X,则ZZ:=ZZ+ZZNEW
4 楼
小田甜 [专家分:3910] 发布于 2009-11-13 19:45:00
楼上说的有些问题的,因为他考虑得是类似的情况。
要想解决,最简单的办法是一次保存下来每年有多少对a[y]。
则
a[t]=a[t-1]+a[t-x]*y (t> x)
a[t]=a[t-1] (t<=x)
递推即可得到答案。
5 楼
cgl_lgs [专家分:21040] 发布于 2009-11-13 23:31:00
呵呵,有理有理,那时是睡前小甜点,就按他的假设做了,没去再想灵活性问题:)
6 楼
abcwuhang [专家分:1840] 发布于 2009-11-14 08:58:00
晕了。。。。
最近备战NOIP搞得我天天都要做题,学校作业也没得做了
惨~~~(PS:不知NOIP会考这种题吗??)
7 楼
cgl_lgs [专家分:21040] 发布于 2009-11-15 21:07:00
NOIP要是考这种题目那也只是送分题而已。。。
俺当年的NOI经验告诉俺:
NOI的大题一般都是考NP类完全难题的非数值算法题,或是对数学知识要求较高的(比如统计、级数等)数值、应用数学算法题。
数值类型的比较少,较多的是非数值的题目。
一般以多重列表或树结构来解决图问题:)
8 楼
小田甜 [专家分:3910] 发布于 2009-11-18 21:21:00
哦,今年终于不用考NOI(P)了……一塌糊涂的……
9 楼
chip [专家分:80] 发布于 2009-11-27 13:33:00
过了!
////////////////////////////
program zhizhi; //贴吧。吱吱。low
var
a:array[1..10000]of integer;
x,y,z,l,s:integer;
i,j,k:longint;
begin
s:=1;
readln(x,y,z);
fillchar(a,sizeof(a),0);
a[1]:=1;
for l:=1 to z do
begin
for j:=1 to s do
begin
if a[j]=0 then exit
else begin
if a[j]>=x then begin
for k:=s+1 to s+y do inc(a[k]);
inc(s,y);
end
else inc(a[j]);
end;
end;
end;
writeln(s);
readln;
end.
试试吧!
10 楼
shizhouxing [专家分:30] 发布于 2009-12-06 15:01:00
路过,灌水
我来回复