QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#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;
}

详细

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: