您的位置:首页 > 产品设计 > UI/UE

codeforces 450 B Jzzhu and Sequences

2015-04-23 13:08 330 查看
题意:给出f1=x,f2=y,f(i)=f(i-1)+f(i+1),求f(n)模上10e9+7

因为 可以求出通项公式:f(i)=f(i-1)-f(i-2)

然后

f1=x;

f2=y;

f3=y-x;

f4=-x;

f5=-y;

f6=-y+x;

f7=x; 发现是以6为循环的

还有注意下余数为正,就每次加上一个mod再模上mod

#include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;

typedef long long LL;
const int INF = (1<<30)-1;
const int mod=1000000007;
const int maxn=100005;

LL a[15];

int main(){
LL x,y,n;
cin>>x>>y;
cin>>n;
a[1]=(x+mod)%mod;
a[2]=(y+mod)%mod;
a[3]=(y-x+2*mod)%mod;
a[4]=(-x+mod)%mod;
a[5]=(-y+mod)%mod;
a[0]=(-y+x+2*mod)%mod;
cout<<a[n%6]<<"\n";
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: