杭电2802
来源:互联网 发布:linux 自启动文件 编辑:程序博客网 时间:2024/06/05 00:36
题目描述:
Giving the N, can you tell me the answer of F(N)?
数学题:推导一下:
f(2*n)=8*n^3-20
f(2*n-1)=4*n^3-3*n^2
代码:
#include<stdio.h>#include<math.h>int main(){int n;while(scanf("%d",&n)!=EOF && n!=0){int k;if(n%2==1){k=(n+1)/2;k=k%2009;k=4*pow(k,3)-3*pow(k,2);while(k<0) k=k+2009;k=k%2009;printf("%d\n",k);}else{if(n==2){printf("7\n");continue;}k=n/2;k=k%2009;k=8*pow(k,3)-20;while(k<0) k=k+2009;k=k%2009;printf("%d\n",k);}}return 0;}然后发现超时。。。参考了网上大牛的做法,找循环节,终于知道这个2009是干嘛的了。。。AC代码:
#include<stdio.h>int F[10000];int main(){F[1] = 1;F[2] = 7;int t, i, mod = 2009;for(i = 3 ; ;i++ )//找循环节的方法{F[i]=F[i-2]-(i-1)*(i-1)*(i-1)+i*i*i;F[i]%=mod;if(F[i]==7 && F[i-1] == 1)break;}int circle = i - 2;int n ;while(~scanf("%d",&n) && n){n %= circle;printf("%d\n",F[n]);}return 0;}
0 0
- 杭电2802
- 杭电2802题
- 杭电2802
- 杭电2802F(N)
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- 杭电ACM2023
- 杭电ACM2602
- tslib 1.4 在ARM板上移植(转)
- code forces 548C:Mike and frog
- leetcode 做题记录3
- JavaScript练习(三)
- awakeFromNib
- 杭电2802
- 我在jms工作室的第一堂课
- 数值的整数次方
- 杭电Problem-3790 最短路径问题
- 基于Google Code Prettify wordpress插件WP-code-button
- springmvc学习笔记(14)-springmvc校验
- 服务返回响应后还需要执行代码如何处理,servle、Controller提前响应
- RabbitMQ AMQP
- 12 个有效的提高编程技能的方法