CCPC-Wannafly Camp #4 电音之王 【O(1)快速乘法】
2019-04-14 16:31发布
生成海报
板子题
知道这个板子就可以很容易暴力了
#include
#define cl(a) memset(a,0,sizeof(a))
using namespace std;
typedef long long LL;
int n,m,k;
const int maxn=1050;
const LL inf=0x3f3f3f3f;
inline long long multi(long long x,long long y,long long mod)
{
long long tmp=(x*y-(long long)((long double)x/mod*y+1.0e-8)*mod);
return tmp<0 ? tmp+mod : tmp;
}
int main (){
int t;
ios::sync_with_stdio(false);
LL a0,a1,m0,m1,c,M,k;
cin>>t;
while (t--){
LL ans;
cin >>a0>>a1>>m0>>m1>>c>>M>>k;
ans = multi(a0,a1,M);
for (int i=2;i<=k;i++){
LL tmp = a1;
LL p1 = multi(m0,a1,M);
LL p2 = multi(m1,a0,M);
a1 = (p1+p2) %M;
a1 = (a1+c)%M;
ans = multi(ans,a1,M);
a0 = tmp;
}
cout<"
";
}
return 0;
}
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮