1701: 抓住那头牛
作者:互联网
题目:
这道题呢是一位的不需要用结构体一维数组就够。
bfs的模板加上亿点改动即可:
1.删掉所有结构体。
2.这道题不用for+方向数组 单个手写。
3.这道题不用ans,用vis代替即可(just like vis[old+1]=vis[old]+1),最后输出vis[k]。
这道题呢非常之难简单
所以直接上代码:
另外祝大家清明快乐!
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int vis[N]={0},n,k; queue <int> q; void bfs() { q.push(n); while(!q.empty()) { int op=q.front(); if(op==k) { return; } if(op+1<N-10&&vis[op+1]==0) { q.push(op+1); vis[op+1]=vis[op]+1; } if(op-1>=0&&vis[op-1]==0) { q.push(op-1); vis[op-1]=vis[op]+1; } if(op*2<N-10&&vis[op*2]==0) { q.push(op*2); vis[op*2]=vis[op]+1; } q.pop(); } } int main() { cin>>n>>k; vis[n]=1; bfs(); cout<<vis[k]-1; return 0; }
标签:1701,old,头牛,int,bfs,vis,这道题,抓住,op 来源: https://www.cnblogs.com/wjk53233/p/16089081.html