0pts,WA+RE 求修改+优化
查看原帖
0pts,WA+RE 求修改+优化
1325916
VelvetChords楼主2024/11/18 13:37
#include <bits/stdc++.h>
using namespace std;
struct Point {
    int x, y;
    Point(int x=0,int y=0):x(x),y(y){}
};
int n,m,rfang,xs,ys,k,ans;
bool furniture[101][101],visited[10001][10001];
int main() { 
    cin>>n>>m>>rfang>>xs>>ys>>k;  
    for(int i=0;i<k;i++) 
	{
        int fx,fy;
        cin>>fx>>fy;
        furniture[fx][fy]=true;
    }    
    queue<Point> q;
    q.push(Point(xs,ys));
    visited[xs][ys]=true;
    int dx[]={-1,1,0,0};
    int dy[]={0,0,-1,1};
    while (!q.empty()) 
	{
        Point p=q.front();
        q.pop();
        ans++;
        for (int i=0;i<4;i++) 
		{
            int nx=p.x+dx[i];
            int ny=p.y+dy[i];
            //判断新的位置是否在家里,且未被访问过,且没与家具或墙壁重合
            if(nx>=0&&nx<=n&&ny>=0&&ny<=m&&!visited[nx][ny]&&!furniture[nx][ny]) 
			{

                visited[nx][ny]=true;
                q.push(Point(nx,ny));
            }
        }
    }
    cout<<ans;
    return 0;
}
2024/11/18 13:37
加载中...