46分,为啥关掉O2优化就对了啊!
  • 板块P1331 海战
  • 楼主monologues
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/7/12 14:20
  • 上次更新2024/7/12 15:21:40
查看原帖
46分,为啥关掉O2优化就对了啊!
1362554
monologues楼主2024/7/12 14:20
#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
char a[1001][1001];
int n,m;
int f(int i,int j)
{
	int s=0;
	if(a[i][j]=='#')s++;
	if(a[i+1][j]=='#')s++;
	if(a[i][j+1]=='#')s++;
	if(a[i+1][j+1]=='#')s++;
	return s;
}
int dfs(int x,int y)
{
	a[x][y]='.';
	for(int i=0;i<4;i++)
	{
	   if(a[x+dx[i]][y+dy[i]]=='#')dfs(x+dx[i],y+dy[i]);
	}
}
int main()
{
	int s=0;
    cin>>n>>m;
    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=1;j<=m;j++)
	   {
	   	   if(f(i,j)==3)
	   	   {
	   	   	 cout<<"Bad placement.";
	   	   	 return 0;
		   }
	   } 
	for(int i=1;i<=n;i++)
	   for(int j=1;j<=m;j++)
	   {
		   if(a[i][j]=='#')
		   {
			 dfs(i,j);
             s++;
		   }
	   } 
    cout<<"There are "<<s<<" ships.";
    return 0;
}
2024/7/12 14:20
加载中...