Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:贴份c++代码,还是要注意代码的严谨性In Reply To:贴份c++代码,还是要注意代码的严谨性 Posted by:a280920481 at 2018-11-20 00:27:48 > #include <iostream> > using namespace std; > > struct Situ > { > int n, s; > }si[400005];//实现队列 > > bool bfs[400005];// bfs 数组 > > int main() > { > int N, K, ans = 1 << 30, qBegin = 0, qEnd = 0; > Situ m; > > cin >> N >> K; > > m.n = N; > m.s = 0; > si[qEnd++] = m; > > while (qEnd > qBegin) > { > m = si[qBegin++]; > > if (m.n == K) > { > ans = m.s; > break; > } > else > { > if (m.n)//加入对 n == 0 的判定 > { > if ((!bfs[m.n << 1]) && (m.n < K))//加入对出界的判定 > { > si[qEnd].n = (m.n << 1); > si[qEnd++].s = m.s + 1; > bfs[m.n << 1] = true; > } > if (!bfs[m.n - 1]) > { > si[qEnd].n = (m.n - 1); > si[qEnd++].s = m.s + 1; > bfs[m.n - 1] = true; > } > } > > if ((!bfs[m.n + 1]) && (m.n < K))//加入对出界的判定 > { > si[qEnd].n = m.n + 1; > si[qEnd++].s = m.s + 1; > bfs[m.n + 1] = true; > } > } > > } > > cout << ans << '\n'; > > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator