关于本地运行与多组数据
查看原帖
关于本地运行与多组数据
340940
yizcdl2357楼主2021/8/5 17:41
#include<iostream>
#include<cstdio>
#define int long long
using namespace std;
struct matrix{
	int a[101][101];
	int x;
	void out()
	{
		for(int i=1;i<=x;i++)
		{
			for(int j=1;j<=x;j++)
				cout<<a[i][j]<<' ';
			cout<<endl;
		}
	}
};
matrix m1;
int n;
matrix operator * (matrix const& x,matrix const& y)
{
	int mod=1e9+7;
	matrix res;
	res.x=x.x;
	for(int i=1;i<=x.x;i++)
		for(int j=1;j<=x.x;j++)
			for(int l=1;l<=x.x;l++)
				res.a[i][j]=(res.a[i][j]+(x.a[i][l]*y.a[l][j]))%mod;
	return res;
}
void make_m1(matrix& x,int y)
{
	x.x=y;
	for(int i=1;i<=x.x;i++)
		x.a[i][i]=1;
}
matrix matrix_pow(matrix x,int y)
{
	if(y==0) return m1;
	if(y&1) return matrix_pow(x,y-1)*x;
	matrix t=matrix_pow(x,y/2);
	return t*t;
}
int fib(int x)
{
	matrix mtrx=(matrix){{{},{0,1,1},{0,1}},2};
	matrix aab=matrix_pow(mtrx,x);
	return aab.a[1][2];
} 
signed main()
{
	make_m1(m1,2);
	while(cin>>n)
	    cout<<fib(n)<<' ';
	return 0;
}
  1. 这个程序在洛谷上可以通过这道题目,洛谷IDE也没问题,但是本地输入到 77 就运行错误,这是为什么?(这里只考虑一组数据的情况)
  2. 就算是洛谷在线IDE,运行多组测试数据,也会出现答案错误的情况(比如1 1程序会输出1 2),这又是为什么?
2021/8/5 17:41
加载中...