青浦赵巷网站建设,网站建设时间如何查询,外贸建站 wordpress,wordpress登录sso题解思路#xff1a; 构造矩阵#xff0c;矩阵乘法计算还是t; 需要找循环节; (注意因为是复合函数#xff0c;不可以在里面取mod) 暴力跑只有可以找到g(222222224)%1e9g(0)%1e9; 所以 g(g(n)%222222224)%1e9g(g(n)); 之后还可以跑出2个循环节 从内到外 240 183120 222222… 题解思路 构造矩阵矩阵乘法计算还是t; 需要找循环节; (注意因为是复合函数不可以在里面取mod) 暴力跑只有可以找到g(222222224)%1e9g(0)%1e9; 所以 g(g(n)%222222224)%1e9g(g(n)); 之后还可以跑出2个循环节 从内到外 240 183120 222222224 1e97 #includecstdio
#includeiostream
#includecstring
#includecmath
#includealgorithm
#includequeue
#includeset
#includemap
#includestack#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
#define int long longconst int maxn6500010;using namespace std;int prime[maxn],is_prime[maxn];struct Matrix
{int nmap[3][3];
};Matrix initA{0,0,0,0,1,0,0,0,1,
};Matrix T
{0,0,0,0,0,0,0,0,0,
};void is_p(){for(int i2;imaxn;i){if(!is_prime[i])for(int jii;jmaxn;ji){is_prime[j]1;}}
}ll pow(ll a,ll b,ll mod)
{ll sum1;while(b){if(b1) sum(sum*a)%mod;a(a*a)%mod;b1;}return sum%mod;
}void put(Matrix x)
{for(int i1;i2;i){for(int j1;j2;j){coutx.nmap[i][j] ;}coutendl;}coutendl;
}Matrix Matrix_mul(Matrix a,Matrix b,int mod)
{Matrix AT;for(int k1;k2;k){for(int i1;i2;i){if(a.nmap[i][k])for(int j1;j2;j){A.nmap[i][j](a.nmap[i][k]*b.nmap[k][j])%mod;A.nmap[i][j]%mod;}}}return A;
}Matrix Matrix_smul(Matrix a,int b,int mod)
{Matrix AinitA;if(b-1) return a;while(b){if(b1) AMatrix_mul(A,a,mod);aMatrix_mul(a,a,mod);b1;}return A;
}#undef int
int main(){
#define int long longMatrix C{0,0,0,0,3,1,0,1,0,};Matrix D{0,0,0,0,0,0,0,1,0,};int n1,mod1e97;while(~scanf(%lld,n)){n%240;mod183120;Matrix BMatrix_smul(C,n,mod);BMatrix_mul(B,D,mod);// put(B)mod222222224;BMatrix_smul(C,B.nmap[1][1],mod);BMatrix_mul(B,D,mod);// put(B);mod1e97;BMatrix_smul(C,B.nmap[1][1],mod);BMatrix_mul(B,D,mod);// put(B);printf(%lld\n,B.nmap[1][1]);}// }
/* int a1,b0,c,mod240,ok0;//跑循环节的代码...for(int i1;;i){c(3*ab)%mod;ba%mod;ac%mod;if(a1b0){coutiendl;ok;if(ok10) break;}}
*/return 0;
} 转载于:https://www.cnblogs.com/minun/p/10473763.html