UVA 10120 - Gift?!(搜索+规律)
| Problem D. Gift?! |
The Problem
There is a beautiful river in a small village. N rocks are arranged in a straight line numbered 1 to N from left bank to the right bank, as shown below.
[Left Bank] - [Rock1] - [Rock2] - [Rock3] - [Rock4] ... [Rock n] - [Right Bank]
The distance between two adjacent rocks is exactly 1 meter, while the distance between the left bank and rock 1 and the distance between Rock n and the right bank are also 1 meter.
Frog Frank was about to cross the river, his neighbor Frog Funny came to him and said,
'Hello, Frank. Happy Children's Day! I have a gift for you. See it? A little parcel on Rock 5.'
'Oh, that's great! Thank you! I'll get it.'
'Wait...This present is for smart frogs only. You can't get it by jumping to it directly.'
'Oh? Then what should I do?'
'Jump more times. Your first jump must be from the left bank to Rock 1, then, jump as many times as you like - no matter forward or backward, but your ith jump must cover 2*i-1 meters. What's more, once you return to the left bank or reach the right bank, the game ends, and no more jumps are allowed.'
'Hmmm, not easy... let me have a think!' Answered Frog Frank, 'Should I give it a try?'
The Input
The input will contain no more than 2000 test cases. Each test case contains a single line. It contains two positive integers N (2<=N<=10^6), and M (2<=M<=N), M indicates the number of the rock on which the gift is located. A test case in which N=0, M=0 will terminate the input and should not be regarded as a test case.
The Output
For each test case, output a single line containing 'Let me try!' If it's possible to get to Rock m, otherwise, output a single line containing 'Don't make fun of me!'
Sample Input
9 5
12 2
0 0
Sample Output
Don't make fun of me!
Let me try!
Note
In test case 2, Frank can reach the gift in this way:
Forward(to rock 4), Forward(to rock 9), Backward(to rock 2, got the gift!)
Note that if Frank jumps forward in his last jump, he will land on the right bank(assume that banks are large enough) and thus, lost the game.
题意:n个石头,最终目标是m,每次移动1,3,5,7.步,步数递增,次数不限,只要不跳到石头之外就可以了,求是否能跳到m。
思路:n>=49的话,不管什么位置都可以跳到,<49的时候进行搜索。
代码:
#include <stdio.h>
#include <string.h>
#include <queue>
using namespace std; int n, m;
struct State {
int v, k;
}p; bool bfs() {
queue<State>Q;
p.v = 1; p.k = 3;
Q.push(p);
while (!Q.empty()) {
p = Q.front(); Q.pop();
if (p.v == m) return true;
State q = p; q.v += q.k; q.k += 2;
if (q.v > 0 && q.v <= n)
Q.push(q);
q = p; q.v -= q.k; q.k += 2;
if (q.v > 0 && q.v <= n)
Q.push(q);
}
return false;
} void solve() {
if (n <= 49 && !bfs()) printf("Don't make fun of me!\n");
else printf("Let me try!\n");
} int main() {
while (~scanf("%d%d", &n, &m) && n + m) {
solve();
}
return 0;
}
UVA 10120 - Gift?!(搜索+规律)的更多相关文章
- UVa 10120 - Gift?!
题目大意 美丽的村庄里有一条河,N个石头被放置在一条直线上,从左岸到右岸编号依次为1,2,...N.两个相邻的石头之间恰好是一米,左岸到第一个石头的距离也是一米,第N个石头到右岸同样是一米.礼物被放置 ...
- UVa 10285【搜索】
UVa 10285 哇,竟然没超时!看网上有人说是记忆化搜索,其实不太懂是啥...感觉我写的就是毫无优化的dfs暴力....... 建立一个坐标方向结构体数组,每个节点dfs()往下搜就好了. #in ...
- uva 10120
bfs搜索 当n大于等于49 是 总是可能的 ~ http://www.algorithmist.com/index.php/UVa_10120 #include <cstdio> #i ...
- UVa 11774 (置换 找规律) Doom's Day
我看大多数人的博客只说了一句:找规律得答案为(n + m) / gcd(n, m) 不过神题的题解还须神人写.. We can associate at each cell a base 3-numb ...
- uva 10994 - Simple Addition(规律)
题目链接:uva 10994 - Simple Addition 题目大意:给出l和r,求∑(l≤i≤r)F(i), F(i)函数题目中有. 解题思路:由两边向中间缩进,然后l和r之间的数可以按照1~ ...
- UVA 10471 Gift Exchanging
题意:就5种盒子,给出每个盒子个数,盒子总数,每个人选择这个盒子的概率.求这个人选择哪个盒子取得第一个朋友的概率最大,最大多少 dp[N][sta]表示当前第N个人面临状态sta(选择盒子的状态可以用 ...
- 紫书 例题7-14 UVa 1602(搜索+STL+打表)
这道题想了很久不知道怎么设置状态,怎么拓展,怎么判重, 最后看了这哥们的博客 终于明白了. https://blog.csdn.net/u014800748/article/details/47400 ...
- 紫书 习题 8-20 UVa 1620 (找规律+求逆序对)
这道题看了半天没看出什么规律, 然后看到别人的博客, 结论是当n为奇数且逆序数为奇数的时候 无解, 否则有解.但是没有给出证明, 在网上也找到详细的证明--我也不知道是为什么-- 求逆序对有两种方法, ...
- 紫书 习题8-5 UVa 177 (找规律)
参考了https://blog.csdn.net/weizhuwyzc000/article/details/47038989 我一开始看了很久, 拿纸折了很久, 还是折不出题目那样..一脸懵逼 后来 ...
随机推荐
- Mybatis trim标签
trim代替where/set标签 trim 是更灵活用来去处多余关键字的标签,它可以用来实现 where 和 set 的效果. <!-- 使用 if/trim 代替 where(判断参数) ...
- unity-------------------Unity5.X 新版AssetBundle使用方案及策略
Unity5.X 新版AssetBundle使用方案及策略 1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使 ...
- CI框架 -- 核心文件 之 config.php
Config:该文件包含CI_Config类,这个类包含启用配置文件来管理的方法 /** * 加载配置文件 * * @param string $file 配置文件名 * @param bool $u ...
- 记一次艰难的IBM X3850重装系统和系统备份经验
[贴心话] 刚刚把一切都搞定了,回到电脑前立马就写下的这篇文章,写的很细节,大家就耐心看看,有些细节是网上没有的,共享一下,仅供参考,以减少大家装机时遇到的困难. [面临处境] 机器型号:IBM X3 ...
- MQ遇到的错误(2035 或 2013认证错误)
java 连接 IBM MQ时出现 2035 或 2013认证错误的解决 com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013 ...
- interproscan 软件对序列进行GO 注释
interproscan 软件实际上将对输入的查询序列和interpro 数据库中的序列去比对,将比对上的序列对应的GO信息作为查询序列的GO注释 在interpro 数据库中,每条蛋白质序列有一个唯 ...
- HTTP常见的Post请求
零.HTTP协议是什么样的? HTTP的请求报文分为三部分:请求行.请求头.请求体 如下2张图表示的意思一致: 图一 图二 本文章的重点是请求体(请求数据),请求行和请求头的部分请参考: http ...
- UITextView: 响应键盘的 return 事件
UITextFieldDelegate代理里面响应return键的回调:textFieldShouldReturn:.但是 UITextView的代理UITextViewDelegate 里面并没有这 ...
- asp.net网页中添加年月日时分秒星期。
html代码如下: 现在是<span id="TimeSpan"></span> <script type="text/javascript ...
- UNIX环境编程学习笔记(5)——文件I/O之fcntl函数访问已打开文件的性质
lienhua342014-08-29 fcntl 函数可以改变已打开的文件的性质. #include <fcntl.h> int fcntl(int filedes, int cmd, ...