• 数列第n项


    在这里插入图片描述
    在这里插入图片描述

    #include <stdio.h>
    #include <string.h>
    long long n,a[2],b[2][2]={0,4,1,3},mod=1e9+7;
    void Matrix1(long long x[2],long long y[2][2])
    {
    	long long c[2];
    	memset(c,0,sizeof(c));
    	for(int j=0;j<2;j++)
    		{
    			for(int k=0;k<2;k++)
    			{
    				c[j]=(c[j]+(x[k]%mod*y[k][j]%mod))%mod;
    			}
    		}
    	for(int i=0;i<2;i++)
    	{
    			x[i]=c[i]%mod;
    	}
    }
    void Matrix2(long long x[2][2],long long y[2][2])
    {
    	long long c[2][2];
    	memset(c,0,sizeof(c));
    	for(int i=0;i<2;i++)
    	{
    		for(int j=0;j<2;j++)
    		{
    			for(int k=0;k<2;k++)
    			{
    				c[i][j]=(c[i][j]+(x[i][k]%mod)*(y[k][j]%mod))%mod;
    			}
    		}
    	}
    	for(int i=0;i<2;i++)
    	{
    		for(int j=0;j<2;j++)
    		{
    			x[i][j]=c[i][j]%mod;
    		}
    	}
    }
    int main()
    {
    	scanf("%lld%lld%lld",&n,&a[0],&a[1]);
    	n--;
    	while(n)
    	{
    		if(n&1)	Matrix1(a,b);
    		Matrix2(b,b);
    		n>>=1;
    	}
    	printf("%lld",a[0]);
    	return 0;
     } 
    
  • 相关阅读:
    多项式求逆
    luoguP3380 【模板】二逼平衡树(树套树)
    NTT
    poj2728 Desert King
    eclipse使用
    Java之面向对象
    Python实现终端高亮显示
    requests
    Go基础
    0919CSP-S模拟测试赛后总结
  • 原文地址:https://www.cnblogs.com/fxzemmm/p/14847978.html
Copyright © 2020-2023  润新知