社区讨论
好一个入门题
P1683入门参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m1pxw0w6
- 此快照首次捕获于
- 2024/10/01 12:29 去年
- 此快照最后确认于
- 2024/10/01 15:53 去年
C
#include<bits/stdc++.h>
using namespace std;
int w,h;
int sum ;
int a[10010][10010];
void dfs(int x,int y){
if(x<1 || y<1 || x>w || y>h){
return ;
}
a[x][y] = 1;
sum++;
if(a[x+1][y] == 0){
dfs(x+1,y);
}
if(a[x-1][y] == 0){
dfs(x-1,y);
}
if(a[x][y+1] == 0){
dfs(x,y+1);
}
if(a[x][y-1] == 0){
dfs(x,y-1);
}
}
char q;
int main(){
cin>>w>>h;
for(int i = 1;i<=w;i++){
for(int j = 1;j<=h;j++){
cin>>q;
if(q == '#'){
a[i][j] = 1;
}
else{
a[i][j] = 0;
}
}
}
for(int i = 1;i<=w;i++){
if(a[1][i] == 0){
dfs(1,i);
}
if(a[w][i] == 0){
dfs(w,i);
}
}
for(int i = 1;i<=h;i++){
if(a[1][i] == 0){
dfs(1,i);
}
if(a[h][i] == 0){
dfs(h,i);
}
}
for(int i = 1;i<=w;i++){
for(int j = 1;j<=h;j++){
if(a[i][j] == 0){
sum++;
}
}
}
cout<<sum;
return 0;
}
10分,求指出点(不要代码)
回复
共 1 条回复,欢迎继续交流。
正在加载回复...