帮忙改亿~~~~~~下
查看原帖
帮忙改亿~~~~~~下
966827
User966827楼主2023/12/25 22:23

听取TLE声一片~

#include<bits/stdc++.h>
using namespace std;
char x[1000][1000],xx[1000][1000];
int r,c,n,m,tot=0,t=0;
bool b;
void clear()
{
	for(int i=1;i<=r;i++)
	{
		for(int j=1;j<=c;j++)
		{
			x[i][j]=xx[i][j];
		}
	}
}
void sum()
{
	if(b)
	{
		t++;
	}
}
int main()
{
	cin>>r>>c>>n>>m;
	for(int i=1;i<=r;i++)
	{
		for(int j=1;j<=c;j++)
		{
			cin>>x[i][j];
			xx[i][j]=x[i][j];
		}
	}
	for(int i=1;i<=r;i++)
	{
		for(int j=1;j<=c;j++)
		{
			t=0;
			if(xx[i][j]=='F')
			{	
				b=true;
				for(int k=1;k<=c;k++)
				{
					if(x[k+1][j]!='M')
					{
						swap(x[k+1][j],x[k][j]);
					}
					else
					{
						b=false;
						clear();
					}
				}
				sum();
				for(int k=1;k<=c;k++)
				{
					if(x[k-1][j]!='M')
					{
						swap(x[k-1][j],x[k][j]);
					}
					else
					{
						b=false;
						clear();
					}
				}
				sum();
				for(int k=1;k<=r;k++)
				{
					if(x[k][j-1]!='M')
					{
						swap(x[k][j-1],x[k][j]);
					}
					else
					{
						b=false;
						clear();
					}
				}
				sum();
				for(int k=1;k<=r;k++)
				{
					if(x[k][j+1]!='M')
					{
						swap(x[k][j+1],x[k][j]);
					}
					else
					{
						b=false;
						clear();
					}
				}
				sum();
			}
			if(t>=3)
			{
				tot++;
			}
		}
	}
	cout<<tot;
	return 0; 
}

我是蒟蒻不要喷我~~

2023/12/25 22:23
加载中...