• HDOJ2717(BFS)


    大意:在x轴上可以走到x-1或x+1或2*x的位置,给出起点位置和目标位置,求最小步数。
    分析:BFS水题。

    代码

    #include<iostream>
    #include<cstdio>
    #include<queue>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    using namespace std;
    int num[100005];
    int bfs(int x,int y)
    {
    	queue<int>q;
    	while(!q.empty())
    	q.pop();
    	q.push(x);
    	num[x]=1;
    	while(!q.empty())
    	{
    		if(q.front()==y)
    			return num[y];
    		int m=q.front()+1;
    		if(m>=0&&m<=100000)
    		if(!num[m])
    		{
    			q.push(m);
    			num[m]=num[q.front()]+1;
    		}
    		int n=q.front()-1;
    		if(n>=0&&n<=100000)
    		if(!num[n])
    		{
    			q.push(n);
    			num[n]=num[q.front()]+1;
    		}
    		int t=2*q.front();
    		if(t>=0&&t<=100000)
    		if(!num[t])
    		{
    			q.push(t);
    			num[t]=num[q.front()]+1;
    		}
    		q.pop();
    	}
    }
    int main()
    {
    	int n,k;
    	while(scanf("%d%d",&n,&k)!=EOF)
    	{
    		memset(num,0,sizeof(num));
    		printf("%d
    ",bfs(n,k)-1);		
    	}
    	return 0;
    }
    



  • 相关阅读:
    SAP 会计科目
    固定资产采购
    MIRO 注意点
    移动类型与会计科目的字段选择
    特征、分类的命名规则
    采购进项税、 含税价转不含税价
    换手率
    内盘、外盘
    SAP 文本增强
    Intellj IDEA 问题集锦
  • 原文地址:https://www.cnblogs.com/nickqiao/p/7583408.html
Copyright © 2020-2023  润新知