QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#488893#8815. Space Stationc20150005WA 33ms7996kbC++141.1kb2024-07-24 16:07:352024-07-24 16:07:36

Judging History

你现在查看的是最新测评结果

  • [2024-07-30 16:51:06]
  • hack成功,自动添加数据
  • (/hack/760)
  • [2024-07-24 16:07:36]
  • 评测
  • 测评结果:WA
  • 用时:33ms
  • 内存:7996kb
  • [2024-07-24 16:07:35]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;using ll=long long;
int rd(int x=0,char c=getchar()){int f=1;while(!isdigit(c))f=(c^'-'?1:-1),c=getchar();while(isdigit(c))x=x*10+(c^48),c=getchar();return x*f;}
const int N=214;const ll mod=998244353;
ll fac[N],inv[N];
ll ksm(ll a,ll b,ll r=1){while(b){if(b&1)r=r*a%mod;a=a*a%mod;b>>=1;}return r;}
void init(int n){
    inv[0]=fac[0]=inv[1]=1;
    for(int i=2;i<=n;i++)inv[i]=(mod-mod/i)*inv[mod%i]%mod;
    for(int i=1;i<=n;i++)fac[i]=fac[i-1]*i%mod,inv[i]=inv[i-1]*inv[i]%mod;
}
ll C(int n,int m){return fac[n]*inv[m]%mod*inv[n-m]%mod;}
int n,m;
int a[N],S;
int dp[N][N*N];
int md(const int&x){return x>=mod?x-mod:x;} 
int main(){
	n=rd(),m=rd();
	init(n);
	dp[0][0]=1;
	for(int i=1;i<=n;i++){
		S+=(a[i]=rd());
		for(int j=i;j>=1;j--)for(int k=S;k>=a[i];k--)
		dp[j][k]=md(dp[j][k]+dp[j-1][k-a[i]]);
	}
	ll ans=0;
	for(int i=1;i<=n;i++)for(int j=1,X=ksm(C(n,i),mod-2);j<=S;j++){
		if(i*m<j)ans=(ans+m*dp[i][j]%mod*X)%mod;
		else ans=(ans+j*ksm(i,mod-2)%mod*X%mod*dp[i][j])%mod;
	}printf("%lld",ans);
	return 0;
}
/*
3 3
2 3 4
*/

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3712kb

input:

3 3
2 3 4

output:

499122185

result:

ok 1 number(s): "499122185"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3884kb

input:

5 1
10 20 30 40 50

output:

5

result:

ok 1 number(s): "5"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3824kb

input:

1 9
37

output:

9

result:

ok 1 number(s): "9"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3776kb

input:

5 5
24 41 29 6 40

output:

25

result:

ok 1 number(s): "25"

Test #5:

score: 0
Accepted
time: 1ms
memory: 3952kb

input:

10 34
91 86 1 14 98 13 85 64 91 20

output:

707882334

result:

ok 1 number(s): "707882334"

Test #6:

score: -100
Wrong Answer
time: 33ms
memory: 7996kb

input:

100 9
83 99 170 80 174 137 1 91 111 35 69 39 148 76 142 90 105 30 114 176 196 85 26 109 162 167 171 148 169 162 159 3 4 6 33 61 163 7 77 63 8 20 13 51 26 11 149 136 134 187 96 95 113 104 128 48 167 74 18 91 200 62 167 32 5 180 189 39 63 111 68 72 81 128 42 13 57 180 111 91 83 177 34 45 158 29 114 33...

output:

87638923

result:

wrong answer 1st numbers differ - expected: '82380556', found: '87638923'