QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#488893 | #8815. Space Station | c20150005 | WA | 33ms | 7996kb | C++14 | 1.1kb | 2024-07-24 16:07:35 | 2024-07-24 16:07:36 |
Judging History
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'