代码如下
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1010,mod=998244353;
int T,n,m,c,f,id,ansc,ansf;
string g[N];
int sum[N][N];
void solve()
{
cin>>n>>m>>c>>f;
for(int i=1;i<=n;i++)
{
cin>>g[i];
g[i]=" "+g[i]+" ";
}
memset(sum,0,sizeof sum);
for(int i=1;i<=n;i++)
for(int j=m-1;j>=1;j--)
if(g[i][j]=='1') sum[i][j]=0;
else if(g[i][j+1]=='0') sum[i][j]=sum[i][j+1]+1;
for(int j=1,tmp=0,ac=0;j<m;j++)
{
for(int i=1;i<=n;i++)
{
if(g[i][j]=='1')
{
tmp=0;
continue;
}
ansf=(ansf+ac)%mod;
ac=(ac+sum[i][j]*tmp)%mod;
ansc=(ansc+sum[i][j]*tmp)%mod;
tmp=(tmp+sum[i-1][j])%mod;
}
tmp=ac=0;
}
printf("%lld %lld\n",(c*ansc)%mod,(f*ansf)%mod);
ansc=ansf=0;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>T>>id;
while(T--)
solve();
return 0;
}