POJ 3278 Catch That Cow
2011-08-06 16:32
260 查看
Problem: 3278 | User: nasta | |
Memory: 1276K | Time: 32MS | |
Language: G++ | Result: Accepted |
题目给出两个数a b,求由a经过加一,减一或乘二经过最小的步数n到b,输出n,例如:对于a=5,b=17 有:5-10-9-18-17, n=4
思路:
简单BFS
居然因为时间是用char开的WA了N次、、、够水的
#include <iostream> #include <queue> #define N 100001 using namespace std; int t ; bool s ; int bfs(int n, int k) { queue<int> q; for(int i=0; i < N; ++i) { t[i] = -1; s[i] = 0; } s = 1; t = 0; q.push(n); while(!q.empty()) { int u = q.front();q.pop(); //cout << "c: " << u << "\tt: " << (int)t[u] << endl; if(u == k) return t[u]; int m[3] = {u*2, u-1, u+1}; for(int i=0; i < 3; ++i) { const int &next = m[i]; if(next>=0 && next <= N+1 && !s[next]) { q.push(next); s[next] = true; t[next] = t[u] + 1; } } } return -1; } int main() { int n, k; while(cin >> n >> k) { cout << bfs(n, k) << endl; } return 0; }
相关文章推荐
- POJ 3278 Catch That Cow
- POJ3278 Catch That Cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ-3278-Catch That Cow
- poj 3278 Catch That Cow
- POJ3278-Catch That Cow
- !POJ 3278 Catch That Cow--BFS(隐蔽的BFS)
- POJ 3278 Catch That Cow(BFS基础)
- POJ 3278(Catch That Cow)解题纠错
- POJ 3278 Catch That Cow(kuangbin带你飞 专题一:简单搜索)
- POJ - 3278 Catch That Cow(BFS)
- [POJ] 3278 Catch That Cow
- poj 3278 Catch That Cow (bfs搜索)
- POJ-3278-Catch That Cow
- POJ 3278 Catch That Cow(BFS)
- POJ 3278 Catch That Cow (BFS)
- POJ 3278 Catch That Cow
- catch that cow(简单bFS)抓牛 POJ - 3278
- poj 3278 Catch That Cow(第一道广搜题,(*^__^*) 嘻嘻……)