蓝桥杯真题。。真看不出来哪里错了,各位大佬帮帮忙。。。
  • 板块题目总版
  • 楼主seven7777
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/4/16 15:33
  • 上次更新2023/11/5 00:29:39
查看原帖
蓝桥杯真题。。真看不出来哪里错了,各位大佬帮帮忙。。。
325650
seven7777楼主2021/4/16 15:33

题目地址 我的代码:

#include <bits/stdc++.h>
using namespace std;
int lx,ly,rx,ry;
int a[120][120];
int b[120][120];
int m=1000000; 
int n;
void dfs(int x,int y,int sum)
{
	if(a[x][y]==4)
	{
		if(sum<m)
			m=sum;
		return;
	}
	int dx[4]={0,-1,0,1},dy[4]={-2,0,2,0};
	for(int i=0;i<4;i++)
	{
		int nx=dx[i]+x,ny=dy[i]+y;
		if(nx>=1&&nx<=n&&ny>=1&&ny<=n&&a[nx][ny]!=a[x][y]&&b[nx][ny]==0)
		{
			b[nx][ny]=1;  //占位
			dfs(nx,ny,sum+1);
			b[nx][ny]=0; 
		}
	}
}
int main()
{
	cin>>n;
	int i,j;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			char c;
			cin>>c;
			if(c=='+')
				a[i][j]=1;
			else if(c=='-')
				a[i][j]=2;
			else if(c=='A')
			{
				int lx=i,ly=j;
				a[i][j]=3;
			}
			else if(c=='B')
			{
				int rx=i,ry=j;
				a[i][j]=4;
			}
		}
	}
	dfs(lx,ly,0);
	cout<<m;
	return 0;
}
2021/4/16 15:33
加载中...