【FJOI2007】轮状病毒
来源:互联网 发布:遥感图像元数据 编辑:程序博客网 时间:2024/05/01 14:32
【FJOI2007】轮状病毒
【题目描述】
给定n(N<=100),编程计算有多少个不同的n轮状病毒。
【输入】
第一行有1个正整数n。
【输出】
将编程计算出的不同的n轮状病毒数输出。
【输入样例】
3
【输出样例】
16
【数据范围】
0<n<=100
【题解】
做这题颇有感触啊,感觉省选题目画半个小时画图不吃亏。
看到题目,反正我的第一反应是递推。递推就要有递推式,于是我花了将近20分钟,画出n=1~5情况的轮状病毒个数,结果如下:
1 5 16 45 121……
乍一看,奇数项是完全平方数,偶数项是5的倍数,我想的是往平方数上靠,于是转化成了这样:
1*1 3*3-4 4*4 7*7-4 11*11……
1 3 4 7 11……
就是这样,原来是个变形的Fibonacci数列,前两项为1和3,然后对每一项平方,如果是偶数项就减4,AC~
递推式:F[n]=f[n]*f[n]-4*(n+1 mod 2),f[n]=f[n-1]+f[n-2],f[1]=1,f[2]=3
对了,此题正解是基尔霍夫矩阵,然后优化成另一个递推式。虽然我的答案可能不是出题人想要的,但这一道题让我明白了勤于猜想的力量。
【代码】
既然是Fibonacci变形还要平方,n最大为100,自然上高精度。
【FJOI2007】轮状病毒#代码
0 0
- 【FJOI2007】轮状病毒
- [FJOI2007]轮状病毒
- [FJOI2007]轮状病毒
- [FJOI2007]轮状病毒
- [FJOI2007]轮状病毒
- bzoj 1002: [FJOI2007]轮状病毒
- [Bzoj1002][FJOI2007]轮状病毒
- bzoj1002[FJOI2007]轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒
- 1002: [FJOI2007]轮状病毒
- 【bzoj1002】【FJOI2007】【轮状病毒】
- [高精度][BZOJ1002][FJOI2007]轮状病毒
- 【FJOI2007】【BZOJ1002】轮状病毒
- bzoj1002【fjoi2007】轮状病毒
- [BZOJ1002] [FJOI2007] 轮状病毒
- BZOJ1002 [FJOI2007]轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒
- BZOJ 1002 [FJOI2007]轮状病毒
- 《具体数学》第一章学习总结
- TQ2440内核移植之LCD
- shell 中一个变量是否为数字的判断
- VC6 VS2010添加函数库
- Android开发文章推荐
- 【FJOI2007】轮状病毒
- 通过手机号码怎么知道别人的所在位置
- 防止 _com_util::ConvertBSTRToString 引发的内存泄漏
- python 基于Tkinter的姻缘测试器
- zoj 3761 Easy billiards 乱搞
- 2014来了
- tnsnames.ora配置
- 关于_com_util::ConvertBSTRToString”: 编译错误问题
- 实现阿拉伯数字变成中文大写