#23743: 為甚麼會過不了測資三呢?


es811066 (ZIhan)

學校 : 國立臺灣海洋大學
編號 : 108578
來源 : [1.162.17.147]
最後登入時間 :
2024-09-15 13:25:46
f493. 水窪問題 | From: [118.160.15.93] | 發表日期 : 2020-12-14 22:08

#include<bits/stdc++.h>

using namespace std;

long long int mx,mn,num;

char s[1000][1000];

bool o[1000][1000]={{0}};

int a,b;

long long int z;

void f(int x,int y){

if(o[x][y]==1){

return;

}

z++;

 

o[x][y]=1;

if(o[x+1][y]==0&&s[x+1][y]=='W'&&x<a-1)f(x+1,y);

if(o[x-1][y]==0&&s[x-1][y]=='W'&&x>0)f(x-1,y);

if(o[x][y-1]==0&&s[x][y-1]=='W'&&y>0)f(x,y-1);

if(o[x][y+1]==0&&s[x][y+1]=='W'&&y<b-1)f(x,y+1);

else return;

 

//o[x][y]=0;

}

int main(){

cin>>a>>b;

for(int i=0;i<a;i++){

for(int j=0;j<b;j++){

cin>>s[i][j];

}

}

mx=0;

mn=1000;

num=0;

for(int i=0;i<a;i++){

for(int j=0;j<b;j++){

if(s[i][j]=='W'&&o[i][j]==0){

z=0;

f(i,j);

num++;

mx=max(mx,z);

mn=min(mn,z);

}

}

}

cout<<mx<<" "<<mn<<" "<<num<<endl;

 

}

 
#23744: Re:為甚麼會過不了測資三呢?


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [122.117.95.179]
最後登入時間 :
2024-11-04 20:21:51
f493. 水窪問題 | From: [61.223.36.15] | 發表日期 : 2020-12-14 22:53

mn 有可能沒變動。

 
#23745: Re:為甚麼會過不了測資三呢?


yes51851823@gmail.com (wseds)

學校 : 國立花蓮高級工業職業學校
編號 : 108813
來源 : [114.36.212.168]
最後登入時間 :
2024-10-17 21:35:26
f493. 水窪問題 | From: [111.243.207.54] | 發表日期 : 2020-12-14 23:01

mn 有可能沒變動。


我的做法和他相同,但是我的最小值初始為2147483647也是卡第三測資點@@

 
#23746: Re:為甚麼會過不了測資三呢?


DE45A (一葉之秋)

學校 : 新北市立板橋高級中學
編號 : 68688
來源 : [1.172.131.91]
最後登入時間 :
2024-10-12 13:01:19
f493. 水窪問題 | From: [1.172.133.208] | 發表日期 : 2020-12-14 23:02

#include<bits/stdc++.h>

using namespace std;

long long int mx,mn,num;

char s[1000][1000];

bool o[1000][1000]={{0}};

int a,b;

long long int z;

void f(int x,int y){

if(o[x][y]==1){

return;

}

z++;

 

o[x][y]=1;

if(o[x+1][y]==0&&s[x+1][y]=='W'&&x<a-1)f(x+1,y);

if(o[x-1][y]==0&&s[x-1][y]=='W'&&x>0)f(x-1,y);

if(o[x][y-1]==0&&s[x][y-1]=='W'&&y>0)f(x,y-1);

if(o[x][y+1]==0&&s[x][y+1]=='W'&&y<b-1)f(x,y+1);

else return;

 

//o[x][y]=0;

}

int main(){

cin>>a>>b;

for(int i=0;i<a;i++){

for(int j=0;j<b;j++){

cin>>s[i][j];

}

}

mx=0;

mn=1000;

num=0;

for(int i=0;i<a;i++){

for(int j=0;j<b;j++){

if(s[i][j]=='W'&&o[i][j]==0){

z=0;

f(i,j);

num++;

mx=max(mx,z);

mn=min(mn,z);

}

}

}

cout<<mx<<" "<<mn<<" "<<num<<endl;

 

}


測資三沒水漥

 
ZeroJudge Forum