不知道有什么低级错误,一运行就结束
  • 板块P1331 海战
  • 楼主张一2010
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/1 23:01
  • 上次更新2024/3/2 10:16:26
查看原帖
不知道有什么低级错误,一运行就结束
1038838
张一2010楼主2024/3/1 23:01
#include<bits/stdc++.h>
using namespace std;
int r,c,ans;char Map[1003][1003];
bool pd(int x,int y){
	int jsq=0;
	int fx[4]={0,0,1,1},fy[4]={0,1,0,1};/*m r w r+w*/
	for(int i=0;i<4;i++) if(Map[x+fx[i]][y+fy[i]]=='#') jsq++;
	return jsq!=3;
}
int main(){
	cin>>r>>c;
	for(int i=1;i<=r;i++) for(int j=1;j<=c;j++) cin>>Map[i][j];
	for(int i=1;i<r;i++)for(int j=1;j<c;j++)
		if(!pd(i,j)){
			cout<<"Bad placement.";
			return 0;
		}
	for(int i=1;i<=r;i++)for(int j=1;j<=c;j++){
		if(Map[i][j]=='#'){Map[i][j]='.';
			int q[1000*1000+2][2]/*x,y*/,head=1,tail=1, fx[4]={0,1,0,-1},fy[4]={1,0,-1,0};
			q[1][0]=i,q[1][1]=j;
			while(head<=tail){
				for(int k=0;k<4;k++){
					int nox=i+fx[k],noy=j+fy[k];
					if(Map[nox][noy]=='#') Map[nox][noy]='.',q[++tail][0]=nox,q[tail][1]=noy;
				}head++;
			}
			ans++;
		}
	}
	cout<<"There are "<<ans<<" ships.";
	return 0;
}

2024/3/1 23:01
加载中...