乐视的蚱蜢问题,这么做不知道对不对。

//蚱蜢问题
#include<iostream>
#include<vector>
#include<deque>
using namespace std;
int main()
{
	int n;
	while (cin >> n)
	{
		deque<int>d;
		d.push_back(0);
		int count = 0;
		int find = false;
		while (!find)
		{
			int k=0;
			while (k<pow(2,count))
			{
				if (d.front() - count - 1 != n&&d.front() + count + 1 != n)
				{
					d.push_back(d.front()-count-1);
					d.push_back(d.front() +count +1);
					d.pop_front();
				}
				else
				{
					find = true;
					break;
				}
				k++;
			}
			count++;
		}
		cout << count << endl;
	}
}
用的一个双向队列,应该是BFS思想

全部评论
试了下,这样很容易就超时了,估计不行。。
点赞 回复 分享
发布于 2016-09-19 18:36

相关推荐

轻絵梨花泪沾衣:南泵,大少爷驾到通通闪开
点赞 评论 收藏
分享
10-21 00:37
已编辑
门头沟学院 C++
小浪_Coding:你问别人,本来就是有求于人,别人肯定没有义务免费回答你丫, 有点流量每天私信可能都十几,几十条的,大家都有工作和自己的事情, 付费也是正常的, 就像你请别人搭把手, 总得给人家买瓶水喝吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务