CF 257DIV2 B. Jzzhu and Sequences (取余需注意!!!!!!!)

来源:互联网 发布:苏州基本办公软件 编辑:程序博客网 时间:2024/05/18 19:21

题意: f1= x,f2= y, 当i>=2时   fi= f(i-1) + f(i+1)

  给你一个x,y,n 求fn%(10e9+7)

题目链接:http://codeforces.com/contest/450/problem/B

算一下就可以发现fn是规律的,fn= f(n-6)  所以我们算出f1- f6即可

但是这题我在比赛的时候被别人hack了 , 原因就是我取余的时候没注意,当ans+MOD 还是负数的时候我就会错

代码:

 

#include <stdio.h>#include <string.h>#define MOD 1000000007 #define LL long longint main(){LL a[10];while(scanf("%lld %lld",&a[1], &a[2])!=EOF){LL n;scanf("%lld",&n);a[3]= a[2]- a[1];a[4]= a[3]- a[2];a[5]= a[4]- a[3];a[6]= a[5]- a[4];a[7]= a[6]- a[5];n%= 6;for(int i= 1; i<= 6; i++){if(i)//之前我是 (a[i]+ MOD)%MOD ,当ans+MOD< 0 会出错 printf("%lld\n",(a[i]%MOD+ MOD)%MOD);elseprintf("%lld\n",(a[6]%MOD+ MOD)%MOD);}}return 0;}


 

0 0
原创粉丝点击