poj 3070マトリクス高速べき乗単純問題
824 ワード
基本的な運用は、基本的にテンプレート問題です.
fi【n】.(1,1)*(1)を求めます
( 1,0) ( 0)
fi【n】.(1,1)*(1)を求めます
( 1,0) ( 0)
#include
#include
using namespace std;
struct juz
{
int bat[3][3];
int x,y; //
};
juz mutp(juz a,juz b)
{
juz c;
c.x=a.x;c.y=b.y;
memset(c.bat,0,sizeof(c.bat));
for(int k=0;k=1)
{
if(k%2)
c=mutp(c,a);
k=k/2; a=mutp(a,a);
}
return c;
}
int main()
{
int n;
while(cin>>n&&n!=-1)
{
if(n==0)
{
cout<<0<