记录编号 400284 评测结果 AAAAAAAAAA
题目名称 01进制数 最终得分 100
用户昵称 GravatarLetter zZZz 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2017-04-29 18:29:16 内存使用 0.31 MiB
显示代码纯文本
#include <fstream>
#include <iostream>
#include <math.h>
using namespace std;
ifstream fi("binacy.in");
ofstream fo("binacy.out");
struct Mitrix
{
	int fib[3][3];
	Mitrix()
	{
		fib[1][1]=1;fib[1][2]=1;
		fib[2][1]=1;fib[2][2]=0;
	}
}a,b;
Mitrix mul(Mitrix x,Mitrix y)
{
	Mitrix ans;
	ans.fib[1][1]=0;ans.fib[1][2]=0;ans.fib[2][1]=0;
	for(int i=1;i<=2;i++)
		for(int j=1;j<=2;j++)
			for(int k=1;k<=2;k++)
			{
				ans.fib[i][j]+=x.fib[i][k]*y.fib[k][j];
				ans.fib[i][j]=ans.fib[i][j]%15746;
			}
	return ans;
}
Mitrix fastmul(int n)
{
	Mitrix ans;
	ans.fib[1][1]=1;ans.fib[1][2]=0;ans.fib[2][1]=0;ans.fib[2][2]=1;
	while(n)
	{
		if (n%2)
			ans=mul(ans,a);
		n/=2;
		a=mul(a,a);
	}
	return ans;
}
int main()
{
	int N;
	fi>>N;
	a=fastmul(N-1);
	fo<<(a.fib[1][1]+a.fib[1][2])%15746;
	return 0;
}