P8865求助
  • 板块灌水区
  • 楼主YaeMiko_
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/9/5 16:53
  • 上次更新2023/11/2 22:40:07
查看原帖
P8865求助
256893
YaeMiko_楼主2023/9/5 16:53

rt

#include <bits/stdc++.h>
#define int long long
//#define max(A,B) (A<B?B:A)
using namespace std;
int z=0;
char a[1010][1010];
int s[1010][1010];
int t,id,n,m,c,f,ansc,ansf;
int jic,jif;
int mod=998244353;
signed main()
{
	cin>>t>>id;
	while(t--)
	{
	    memset(s,0,sizeof s);
		cin>>n>>m>>c>>f;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>a[i][j];
			}
     	}
		for(int i=1;i<=n;i++)
		{
			for(int j=m-1;j>=1;j--)
			{
				if(a[i][j]=='1')
				s[i][j]=-1;
				else if(a[i][j+1]=='0')
				s[i][j]=s[i][j+1]+1;
			}
		}
		for(int j=1;j<m;j++)
		{
			jic=jif=0;
			for(int i=1;i<=n;i++)
			{
				if(s[i][j]=-1)
				{
					jic=jif=0;
					continue;
				}
				ansc=ansc%mod+(s[i][j]*(jic%mod))%mod;
				ansf=(ansf%mod+jif%mod)%mod;
				jif=(jif+(s[i][j]*(jic%mod))%mod)%mod;
				jic+=max(z,s[i-1][j]);
			}
		}
		cout<<(ansc*c)%mod<<" "<<(ansf*f)%mod<<endl;
	}
	return 0; 
}
2023/9/5 16:53
加载中...