80分求助,本地过了,但你谷boom
查看原帖
80分求助,本地过了,但你谷boom
703115
d909RCA楼主2024/7/7 10:47
#include <bits/stdc++.h>
using namespace std;
int t,id;
bool a[1009][1009];
signed main()
{
//	freopen("plant16.in","r",stdin);
	cin>>t>>id;
	while(t--)
	{
		int n,m,c,f;
		scanf("%d%d%d%d\n",&n,&m,&c,&f);
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				char x=getchar();
				a[i][j]=x-'0';
			}
			getchar();
		}
		if(c==f&&f==0)
		{
			printf("0 0\n");
			continue ;
		}
		long long cntc=0,cntf=0;
		for(int i=1;i<=n-2;i++)
		{
			for(int j=1;j<=m;j++)
			{
				if(a[i][j]) continue ;
				long long sc=0,sf=0;
				for(int k=j+1;k<=m;k++)
				{
					if(a[i][k]) break ;
					sc++;
					sf++;
				}
				if(a[i+1][j]) continue ;
				for(int k=i+2;k<=n;k++)
				{
					if(a[k][j]) break ;
					long long sff=0;
					for(int l=j+1;l<=m;l++)
					{
						if(a[k][l]) break ;
						cntc+=sc;
						sff+=sf;
					}
					for(int l=k+1;l<=n;l++)
					{
						if(a[l][j]) break ;
						cntf+=sff;
					}
				}
			}
		}
		printf("%lld %lld\n",(cntc*c)%998244353,(cntf*f)%998244353);
	}
	return 0;
}
2024/7/7 10:47
加载中...