比赛 |
20241021 |
评测结果 |
AAWWTTTTTT |
题目名称 |
体育课 |
最终得分 |
20 |
用户昵称 |
Davinci |
运行时间 |
11.912 s |
代码语言 |
C++ |
内存使用 |
3.54 MiB |
提交时间 |
2024-10-21 10:14:40 |
显示代码纯文本
#include<iostream>
#include<cmath>
using namespace std;
long long a[100005];
char c[100005];
long long zh[15][5];
long long p=998244353;
long long sum;
int main(){
freopen("sportk.in","r",stdin);
freopen("sportk.out","w",stdout);
zh[1][0]=1;
zh[2][0]=1;
zh[3][0]=1;
zh[4][0]=1;
zh[1][1]=1;
zh[2][1]=2;
zh[2][2]=1;
zh[3][1]=3;
zh[3][2]=3;
zh[3][3]=1;
zh[4][1]=4;
zh[4][2]=6;
zh[4][3]=4;
zh[4][4]=1;
zh[0][0]=1;
zh[5][1]=5;
zh[5][2]=10;
zh[5][3]=10;
zh[5][4]=5;
zh[5][5]=1;
zh[5][0]=1;
zh[6][0]=1;
zh[6][1]=6;
zh[6][2]=15;
zh[6][3]=20;
zh[6][4]=15;
zh[6][5]=6;
zh[6][6]=1;
zh[7][0]=1;
zh[7][1]=7;
zh[7][2]=21;
zh[7][3]=35;
zh[7][4]=35;
zh[7][5]=21;
zh[7][6]=7;
zh[7][7]=1;
zh[8][0]=1;
zh[8][1]=8;
zh[8][2]=28;
zh[8][3]=56;
zh[8][4]=70;
zh[8][5]=56;
zh[8][6]=28;
zh[8][7]=8;
zh[8][8]=1;
zh[9][0]=1;
zh[9][1]=9;
zh[9][2]=36;
zh[9][3]=84;
zh[9][4]=126;
zh[9][5]=126;
zh[9][6]=84;
zh[9][7]=36;
zh[9][8]=9;
zh[9][9]=1;
zh[10][0]=1;
zh[10][1]=10;
zh[10][2]=45;
zh[10][3]=120;
zh[10][4]=210;
zh[10][5]=252;
zh[10][6]=210;
zh[10][7]=120;
zh[10][8]=45;
zh[10][9]=10;
zh[10][10]=1;
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>c[i];
a[i]=c[i]-'0';
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
for(int l=0;l<j;l++){
if((i-1-l)<0){
break;
}
long long sumres=pow(2,i-1-l);
sum=(sum+(a[j]*sumres)*zh[j-1][l]*zh[n-j][i-1-l]%p)%p;
for(int k=1;k<=j-l;k++){
if(a[k]==0){
sum=(sum-(a[j]*sumres)*zh[j-1-k][l-1]*zh[n-j][i-1-l]%p)%p;
}
}
}
}
}
cout<<sum;
fclose(stdin);
fclose(stdout);
return 0;
}