百练4115(鸣人和佐助)

题目链接: http://bailian.openjudge.cn/practice/4115/

这次题面就不发出来了(有张图片 ),大家自行上网站搜索。这道题是一道变形的bfs题,也是迷宫问题。相较经典的迷宫问题,多了一个状态,就是查克拉的数量。(有木有感觉和新生赛的G题好像 )。用map存点,用gg数组存每个点的状态判断可不可以走
上代码
#include 
#include 
#include 
using namespace std;
const int Max = 210;
int m,n,w,sx,sy,ex,ey;
int ans=1000000000;
char map[Max][Max];
int gg[Max][Max];
int dx[4] = {1,0,-1,0};
int dy[4] = {0,1,0,-1};
struct node
{
    int x,y,t,cha;
};
    queue q;
bool judge(int x,int y)
{
    if(0<= x && x 0)
				{
				node n2;
                n2.x = x1;
                n2.y = y1;
                n2.t = tmp.t +1;
                n2.cha=tmp.cha-1;
                gg[x1][y1]=tmp.cha-1;
                q.push(n2);
				}
				else if(map[x1][y1]=='*'||map[x1][y1]=='+')
				{
				node n2;
                n2.x = x1;
                n2.y = y1;
                n2.t = tmp.t +1;
                n2.cha=tmp.cha;
                gg[x1][y1]=tmp.cha;
                q.push(n2);
				}
                
            }
        }
    }
}
int main()
{
    int i,j;
    scanf("%d%d%d",&m,&n,&w);
    getchar();
    for(i=0; i

你可能感兴趣的:(bfs,百练)