80分求解

P1962 斐波那契数列

嚣张
by eric161324_AFO @ 2017-10-19 09:53:30


同问80分 ```cpp #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int mod=1000000007; struct matrix { long long a[3][3]; } k,res; matrix multi(matrix x,matrix y) { matrix res; memset(res.a,0,sizeof(res.a)); for(register int i=1; i<=2; i++) { for(register int j=1; j<=2; j++) { res.a[i][j]+=x.a[i][1]*y.a[1][j]; res.a[i][j]+=x.a[i][2]*y.a[2][j]; res.a[i][j]%=mod; } } return res; } int cal(int p) { matrix c,res; memset(res.a,0,sizeof(res.a)); c.a[1][1]=1; c.a[1][2]=1; c.a[2][1]=1; c.a[2][2]=0; res.a[1][1]=res.a[2][2]=1; while(p) { if(p%2) { res=multi(res,c); } c=multi(c,c); p=p>>1; } return res.a[1][1]%mod; } int main() { long long n; scanf("%d",&n); cout<<cal(n-1)<<endl; return 0; } ``` 错误的答案。得分0 On line 1 column 1, read 80419, expected 18836. 错误的答案。得分0 On line 1 column 1, read 36965, expected 55103.
by Peter_Z @ 2017-10-19 09:54:33


2 10 错误
by Peter_Z @ 2017-10-19 09:55:04


这么棒啊,~~错误答案就别发了吧~~
by Dota_Air @ 2017-10-19 09:58:55


~~吃屎~~
by Erina @ 2017-10-19 10:03:08


#吃屎
by Erina @ 2017-10-19 10:03:26


这肯定是我见过最快的回复了
by Erina @ 2017-10-19 10:04:16


#include<iostream> #include<cstring> using namespace std;const int zhh=1000000007;struct ha{long long yis[5][5];ha(){memset(yis,0,sizeof(yis));}};ha mal(ha A,ha B){ha C;for(int i=1;i<=2;i++){for(int j=1;j<=2;j++){for(int k=1;k<=2;k++){C.yis[i][j]=(C.yis[i][j]+A.yis[i][k]\*B.yis[k][j])%zhh;}}}return C;}ha kuaimi(ha A,long long k){ha B;for(int i=1;i<=2;i++){B.yis[i][i]=1;}while(k!=0){if(k%2==1){B=mal(A,B);}A=mal(A,A);k/=2;}return B;}int main(){long long n;cin>>n;ha A,B;B.yis[1][1]=1;B.yis[2][1]=1;A.yis[1][1]=1;A.yis[1][2]=1;A.yis[2][1]=1;A.yis[2][2]=0;long long ans=mal(kuaimi(A,n-1),B).yis[2][1];cout<<ans;return 0;}
by Erina @ 2017-10-19 10:04:42


zhh的
by Erina @ 2017-10-19 10:05:11


@[Im\_ygy](/space/show?uid=38485) 发别人的代码不要脸 @[白竹](/space/show?uid=38144) 有人抄你代码
by Peter_Z @ 2017-10-19 10:05:12


| 下一页