社区讨论

dfs46分求调,悬关!

P1331海战参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lycy5ivv
此快照首次捕获于
2024/07/08 20:16
2 年前
此快照最后确认于
2024/07/08 21:44
2 年前
查看原帖
#include<bits/stdc++.h> using namespace std; int r,c; char ch; int mapp[1010][1010]; int dx[4]={0,-1,1,0}; int dy[4]={-1,0,0,1}; int dfs(int x,int y){ mapp[x][y]=2; for(int i=0;i<4;i++){ if(x+dx[i]>0&&x+dx[i]<=r&&y+dy[i]>0&&y+dy[i]<=c&&mapp[x+dx[i]][y+dy[i]]==1)dfs(x+dx[i],y+dy[i]); } } int main(){ cin>>r>>c; int i,j; for(i=1;i<=r;i++){ for(j=1;j<=c;j++){ cin>>ch; if(ch=='#') mapp[i][j]=1;else mapp[i][j]=0; } } int s=0; for(i=1;i<r;i++){ for(j=1;j<c;j++){ if(mapp[i][j]+mapp[i+1][j]+mapp[i][j+1]+mapp[i+1][j+1]==3){ printf("Bad placement."); return 0; } } } for(i=1;i<=r;i++){ for(j=1;j<=c;j++){ if(mapp[i][j]==1){ s++; dfs(i,j); } } } printf("There are %d ships.",s); return 0; }
CPP

		cin>>ch;
		if(ch=='#')
		  mapp[i][j]=1;else
		  mapp[i][j]=0;
		}
	}
	int s=0;
	for(i=1;i<r;i++){
		for(j=1;j<c;j++){
			if(mapp[i][j]+mapp[i+1][j]+mapp[i][j+1]+mapp[i+1][j+1]==3){
				printf("Bad placement.");
				return 0;
			}
		}
	}
	for(i=1;i<=r;i++){
		for(j=1;j<=c;j++){
			if(mapp[i][j]==1){
			s++;
			dfs(i,j);	
			}
		}
	}
	printf("There are %d ships.",s);
	return 0;
}

回复

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

正在加载回复...