社区讨论
怎么会不偏不倚的卡到50pts啊……
P8865[NOIP2022] 种花参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhj43f44
- 此快照首次捕获于
- 2025/11/03 20:24 4 个月前
- 此快照最后确认于
- 2025/11/03 20:24 4 个月前
代码:
CPP#include<iostream>
using namespace std;
const long long MOD=998244353;
long long T,ID,n,m,c,f,anc,anf;
char map[1145][1145];
long long cnt[1145][1145];
int main(){
scanf("%lld %lld",&T,&ID);
while(T--){
anc=anf=0;
scanf("%lld %lld %lld %lld",&n,&m,&c,&f);
for(long long i=0;i<n;i++){
for(long long ii=0;ii<=m;ii++){
cnt[i][ii]=-1;
}
scanf("%s",map[i]);
for(long long ii=m-1;ii>-1;ii--){
if(map[i][ii]=='0'){
cnt[i][ii]=cnt[i][ii+1]+1;
}else{
cnt[i][ii]=-1;
}
}
}
/*for(long long i=0;i<n;i++){
for(long long ii=0;ii<m;ii++){
printf("%lld ",cnt[i][ii]);
}printf("\n");
}*/
for(long long ii=0,a,b;ii<m;ii++){
a=b=0;
for(long long i=0;i<n;i++){
if(cnt[i][ii]<0){a=b=0;continue;}
anc+=(cnt[i][ii]*(b%MOD))%MOD;
anc%=MOD;anf+=a%MOD;anf%=MOD;
a+=(cnt[i][ii]*(b%MOD))%MOD;a%=MOD;
if(cnt[i-1][ii]>0){b+=cnt[i-1][ii];}
}
}
printf("%lld %lld\n",(c*anc)%MOD,(f*anf)%MOD);
}
return/*结束*/0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...