2 solutions
-
0
#include using namespace std; int n, ans = 0; char a[1005][1005]; int water(int x, int y){ if(x < 1 || y < 1 || x > n || y > n || a[x][y] == '*' || a[x][y] == ' ') return 0; a[x][y] = ' '; ans++; water(x + 1, y); water(x, y + 1); water(x - 1, y); water(x, y - 1); return ans; } int main(){ cin >> n; for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ cin >> a[i][j]; } } cout << water(1, 1); return 0; }
-
0
打卡
#include <bits/stdc++.h> using namespace std; struct pre{ int x,y; }; char w[1010][1010]; int n,sum=0,x,y; int x1[5]={0,-1,0,1}; int y2[5]={-1,0,1,0}; int check(int x,int y){ return (x>=0&&x<n&&y>=0&&y<n&&w[x][y]=='.'); } void bfs(){ queue<pre>q; q.push((pre) {x,y}); while(!q.empty()){ int xx=q.front().x,yy=q.front().y; q.pop(); for(int i=0;i<4;i++){ int xxx=xx+x1[i]; int yyy=yy+y2[i]; if(check(xxx,yyy)){ w[xxx][yyy]='*'; sum++; q.push((pre){xxx,yyy}); } } } return ; } int main(){ cin>>n; x=0,y=0; for(int i=0;i<n;i++){ cin>>w[i]; } w[0][0]='*'; bfs(); cout<<sum+1; return 0; }
- 1
Information
- ID
- 50
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 6
- Tags
- # Submissions
- 59
- Accepted
- 18
- Uploaded By