结果总是0,求助!
查看原帖
结果总是0,求助!
704634
poor_OIer楼主2023/5/30 21:36
#include<bits/stdc++.h>
using namespace std;
int a,b,n,ans;
queue<pair<int,int> > q;
int dx[2]={-1,0};
int dy[2]={0,1};
int flag[20][20];
bool check(int x,int y)
{
	if(x<1||x>a||y<1||y>n)
		return false;
	return true;
}
void bfs()
{
	int x=1,y=1;
	q.push(make_pair(x,y));
	while(!q.empty())
	{
		for(int i=0;i<2;i++)
		{
			int nx=dx[i]+q.front().first;
			int ny=dy[i]+q.front().second;
			if(check(nx,ny)&&flag[nx][ny]==0)
			{
				q.push(make_pair(nx,ny));
				if(nx==a&&ny==b)
				{
					ans++;
					continue;
				}
			}
		}
		q.pop();
	}
}
int main()
{
	cin>>a>>b>>n;
	for(int i=1;i<=n;i++)
	{
		int x,y;
		cin>>x>>y;
		flag[x][y]=1;
	}
	bfs();
	cout<<ans;
	return 0;
}
2023/5/30 21:36
加载中...