和上一道相同的简单BFS
#include<bits/stdc++.h> using namespace std; queue<int> q; int dis[100]; int temp[6]={1,-1,5,-5,10,-10}; int main() { int a,b; cin>>a>>b; memset(dis,1000,sizeof(dis)); bool flag[100];//判断是否访问过 memset(flag,true,sizeof(flag)); dis[a]=0; q.push(a); while(!q.empty()){ int x=q.front(); q.pop(); if(x==b){ cout<<dis[b]<<endl;//忘了换行,纠结了好久 break; } for(int i=0;i<6;i++){ int t=x+temp[i]; if(flag[t]){ q.push(t); dis[t]=dis[x]+1; flag[t]=false; } } } return 0; }
原文:https://www.cnblogs.com/lvjt0208/p/14618824.html