社区讨论

60求调

B3818[语言月赛 202308] 电脑中了满屏粉兔病毒参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhjicsah
此快照首次捕获于
2025/11/04 03:03
4 个月前
此快照最后确认于
2025/11/04 03:03
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
char a[1005][1005];
struct WAT
{
	int x,y;
}as[10005];
struct APP
{
	int x,y;
}sa[10005];
int main()
{
	int q,w,n,m,qw=0,ans=0,wq=0;
	cin >> n >> m >> q >> w;
	for(int i=0;i<n;i++)
	{
		for(int l=0;l<m;l++)
		{
			cin >> a[i][l];
			if(a[i][l]=='M')
			{
				as[qw].x=i;
				as[qw].y=l;
				qw++;
			}
			else if(a[i][l]=='F')
			{
				sa[wq].x=i;
				sa[wq].y=l;
				wq++;
			}
		}
	} 
	for(int i=0;i<n;i++)
	{
		for(int l=0;l<m;l++)
		{
			if(a[i][l]=='F')
			{
				int nm=4;
				for(int j=0;j<qw;j++)
				{
					if(as[j].x>i&&as[j].y==l) nm--;
					if(as[j].x<i&&as[j].y==l) nm--;
					if(as[j].y>l&&as[j].x==i) nm--;
					if(as[j].y<l&&as[j].x==i) nm--;
					if(nm<3) break;
				}
				if(nm>=3)
					ans++;
			}
			else if(a[i][l]=='M')
			{
				int nm=4;
				for(int j=0;j<wq;j++)
				{
					if(sa[j].x>i&&sa[j].y==l) nm--;
					if(sa[j].x<i&&sa[j].y==l) nm--;
					if(sa[j].y>l&&sa[j].x==i) nm--;
					if(sa[j].y<l&&sa[j].x==i) nm--;
					if(nm<3) break;
				}
				if(nm>=3)
					ans++;
			}
		}
	} 
	cout << ans;
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...