QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#634718#9451. Expected Waiting Timeucup-team4938#TL 0ms0kbC++141.4kb2024-10-12 17:57:412024-10-12 17:57:42

Judging History

This is the latest submission verdict.

  • [2024-10-12 17:57:42]
  • Judged
  • Verdict: TL
  • Time: 0ms
  • Memory: 0kb
  • [2024-10-12 17:57:41]
  • Submitted

answer

#include <bits/stdc++.h>
typedef long long ll;
#define int long long
int mod, n, A, B, a[2000010], b[2000010], c[2000010], f[2000010], fac[2000010], ifac[2000010];
void add(int &x,int y){x+=y;if(x>=mod)x-=mod;}
int qmd(int x){return x<mod?x:x-mod;}
int qpw(int x,int y=mod-2){int res=1;while(y>0){if(y&1)res=(ll)res*x%mod;x=(ll)x*x%mod;y>>=1;}return res;}
int H(int x){return (ll)fac[x<<1]*ifac[x]%mod*ifac[x+1]%mod;}
void solve(){
	int i, ans = 0;
	scanf("%lld%lld%lld%lld%lld", &n, &mod, &b[0], &A, &B);
	for(i = 1, fac[0] = 1; i <= n << 1; i++){
		fac[i] = (ll)fac[i - 1] * i % mod;
	}
	for(i = n << 1, ifac[n << 1] = qpw(fac[n << 1]); i > 0; i--){
		ifac[i - 1] = (ll)ifac[i] * i % mod;
	}
	for(i = 0; i <= n; i++){
		f[i] = (ll)H(i) * H(n - i - 1) % mod;
		if(i > 0) f[i] = ((ll)f[i] + f[i - 1]) % mod;
//		printf("%d %d %d %d %d\n", i, fac[i], ifac[i], H(i), f[i]);
	}
	for(i = 1, a[0] = 0, c[0] = 0; i <= n << 1; i++){
		b[i] = ((ll)A * b[i - 1] + B) % mod;
		a[i] = (a[i - 1] + b[i] + 1ll) % mod;
		c[i] = a[i];
//		printf("%d %d %d %d\n", i, a[i], b[i], c[i]);
	}
	for(i = 1; i <= n << 1; i++){
		if(i >= 2) ans = (ans + (ll)c[i] * f[(i >> 1) - 1]) % mod;
		if(i <= (n << 1) - 1) ans = (ans + (ll)c[i] * (mod - f[(n << 1) - i - 1 >> 1])) % mod;
	}
	printf("%lld\n", (ll)ans * qpw(H(n)) % mod);
}
signed main()
{
	int t;
	scanf("%d", &t);
	while(t--) solve();
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Time Limit Exceeded

input:

5
1 1000000007 0 1 0
2 1000000007 0 1 1
2 7 5 2 3
3 31 15 6 24
20 1000000007 0 1 0

output:

1
12
1
21
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
879705565
...

result: