母牛生小牛……
pascal吧
全部回复
仅看楼主
level 1
桂敏0922 楼主

背景 Background
母牛生小牛
描述 Description
设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?
输入格式 Input Format
只有一行且只有一个正整数:n
输出格式 Output Format
只有一行且只有一个正整数:第n年时牛的数目。
样例输入 Sample Input
5
样例输出 Sample Output
3
哪位能帮忙看看啊!真道题好像用到高精度呢!!
2014年08月20日 01点08分 1
level 11
#include<cstdio>
long long f[4],g[4];
int main()
{
int n;
long long ans=0;
scanf("%d",&n);
f[0]=1;
f[1]=f[2]=f[3]=0;
for (int i=1;i<=n;++i)
{
for (int j=0;j<4;++j)
g[j]=f[j];
f[0]=g[3];
for (int j=1;j<3;++j)
f[j]=g[j-1];
f[3]+=g[2];
}
for (int i=0;i<4;++i)
ans+=f[i];
printf("%I64d\n",ans);
}
(太弱求轻喷)
2014年08月20日 03点08分 2
谢谢你的代码!但这不是free pascal吧!
2014年08月20日 04点08分
谁能帮忙讲一下这道题怎么用高精度!!我只会一般算法……
2014年08月20日 04点08分
回复 桂敏0922 :这一看就是cpp啊亲
2014年08月21日 03点08分
回复 4533大多数 :这是C代码
2014年08月21日 04点08分
level 1
你都不说数据范围怎么知道要不要用高精度啊?
2014年08月20日 03点08分 3
level 11
至于需不需要高精度嘛,这要看数据范围
数据范围大于200,就需要用高精度了,在递推版本上简单改一改就行了
至于n到了150000或更大时,就需要用矩阵乘法加速递推了
而当n大的到了下一个数量级的时候呢,矩阵乘法都太慢了,就需要用神犇说的PPT,FFT之类的算法了
2014年08月20日 03点08分 4
这题用FFT优化效果似乎不明显啊
2014年08月20日 03点08分
这道题一定用高精度的! 怎么在递推的版本上改啊!!我想不出来……
2014年08月20日 04点08分
回复 桂敏0922 :把long long改成高精度数,然后再重载下高精度整数的+就可以了
2014年08月20日 04点08分
回复 abslime :哎呀……这位大神!在帮个小忙啦……让我这个菜鸟学学[乖]
2014年08月20日 04点08分
level 10
C编译器无法通过cstdio。@wfwhl12
2014年08月21日 09点08分 5
你跟我说这个干嘛
2014年08月21日 09点08分
回复 wfwhl12 :C编译器通不过cstdio,因此可以判断这不是C代码,相反C++编译器过了
2014年08月21日 09点08分
回复 4533大多数 :哦
2014年08月21日 09点08分
level 9
楼上@wfwhl12@4533大多数 两位犇不要再吵了,大家坐下来帮楼主想想既不超时又能承受大数据的算法吧[酷]
2014年08月21日 15点08分 6
好心人[真棒]
2014年08月22日 02点08分
回复 wfwhl12 :在下乃是真·蒟蒻也
2014年08月22日 03点08分
回复 猎火电脑工作室 :装!
2014年08月22日 09点08分
回复 4533大多数 :这都被你看出来了好吧你厉害
2014年08月22日 09点08分
level 12
我是真·蒟蒻[酷]
2014年08月22日 03点08分 7
看不出来……
2014年08月22日 03点08分
笑看神犇卖萌-v-
2014年08月22日 03点08分
回复 猎火电脑工作室 :泥勾勒
2014年08月22日 03点08分
回复 wfwhl12 :[委屈]
2014年08月22日 03点08分
1