HDU 2802 F(N)(数论)
2015-10-03 09:09
357 查看
Description
已知F(n)-n^3=F(n-2)-(n-1)^3,F(1)=1,F(2)=7,给出n,求F(n)%2009
Input
多组输入,每组用例占一行为一整数n,以n=0结束输入
Output
对于每个n,输出F(n)%2009
Sample Input
1
2
3
0
Sample Output
1
7
20
Solution
显然F(2*k)和F(2*k-1)的循环节都为2009,所以F(n)的循环节为4018,因此只要预处理出F(1)~F(4018)的值,每次输出F(n%4018)即可,注意4018^3会爆int,所以要用long long
Code
已知F(n)-n^3=F(n-2)-(n-1)^3,F(1)=1,F(2)=7,给出n,求F(n)%2009
Input
多组输入,每组用例占一行为一整数n,以n=0结束输入
Output
对于每个n,输出F(n)%2009
Sample Input
1
2
3
0
Sample Output
1
7
20
Solution
显然F(2*k)和F(2*k-1)的循环节都为2009,所以F(n)的循环节为4018,因此只要预处理出F(1)~F(4018)的值,每次输出F(n%4018)即可,注意4018^3会爆int,所以要用long long
Code
#include<stdio.h> #define mod 2009 typedef long long ll; ll f[4444]; void init() { f[1]=1ll; f[2]=7ll; for(ll i=3;i<=4018;i++) f[i%4018]=(f[i-2]+((i*i*i)%mod-(i-1)*(i-1)*(i-1)%mod+mod)%mod)%mod; } int main() { init(); int n; while(scanf("%d",&n),n) { n%=4018; printf("%lld\n",f ); } return 0; }
相关文章推荐
- linux c 编程相关资料
- 9-v4l2驱动——streaming IO 流数据io
- Scala实现WordCount功能
- RHCSA 系列(十三): 在 RHEL 7 中使用 SELinux 进行强制访问控制
- 半年总结--我要飞得更高
- 【自考】数据库系统原理
- 【MIS你了解多少】你现在遇到的问题都是宝贵的财富
- 【转载】dll文件用记事本打开后怎么还原
- 【自考】运筹与管理
- 关于管理经济学的有趣解释
- 半年总结
- 1079. Total Sales of Supply Chain (25) - 类树操作
- 小问题解决与体会
- 且看本菜鸟如何装系统
- sae新浪云开发所需要资源下载
- ThinkPHP的CURD
- 酷我音乐盒2015 v8.0.1.4 系统封装专用版
- HDU 2700 Parity(水~)
- 使用mvc3制作物流单号查询页面
- ocp-80