【wanaflyCamp】电音之王

2019-04-13 13:23发布

这里写图片描述 代码:
学会了新姿势,以前只会longn" role="presentation">longn的快速乘,无限T…后来想起我原来很久以前其实是学过的。 #include #include #define ll long long #define LL long long using namespace std; inline LL mul(LL x,LL y,LL MOD){ x=x%MOD,y=y%MOD; return ((x*y-(LL)(((long double)x*y+0.5)/MOD)*MOD)%MOD+MOD)%MOD; } int main() { ll a[2],m[2],c,M,k; int t; cin>>t; while(t--) { scanf("%lld%lld",a,a+1); scanf("%lld%lld",m,m+1); scanf("%lld%lld%lld",&c,&M,&k); ll ans=mul(a[0],a[1],M); for(int i=2;i<=k;i++) { ll temp=((mul(m[0],a[1],M)+mul(m[1],a[0],M))%M+c)%M; ans=mul(ans,temp,M); a[0]=a[1]; a[1]=temp; } printf("%lld ",ans); } return 0; } /************************************************************** Problem: 1071 User: coldfresh Language: C++ Result: 正确 Time:3386 ms Memory:1540 kb ****************************************************************/