1. 程式人生 > 其它 >1701: 抓住那頭牛

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; }