uva 10120
bfs搜索 当n大于等于49 是 总是可能的 ~ http://www.algorithmist.com/index.php/UVa_10120
#include <cstdio> #include <cstdlib> #include <cmath> #include <map> #include <set> #include <queue> #include <stack> #include <vector> #include <sstream> #include <string> #include <cstring> #include <algorithm> #include <iostream> #define maxn 2010 #define INF 0x7fffffff #define inf 10000000 #define MOD 1000000007 #define ull unsigned long long #define ll long long using namespace std; int m, n; struct node { int now, step; node(int i, int j) { now = i, step = j; } }; bool solve() { queue<node> q; q.push(node(1, 1)); while(!q.empty()) { node u = q.front(); q.pop(); if(u.now == m) return 1; if(u.now+2*(u.step+1)-1 <= n) q.push(node(u.now+2*(u.step+1)-1, u.step+1)); if(u.now-2*(u.step+1)+1 >= 1) q.push(node(u.now-2*(u.step+1)+1, u.step+1)); } return 0; } int main() { while(scanf("%d%d", &n, &m) == 2 && n+m) { if(n >= 50 || solve()) puts("Let me try!"); else puts("Don't make fun of me!"); } return 0; }