国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

抓住那頭牛(廣搜)

2019-11-08 18:41:42
字體:
來源:轉載
供稿:網友

描述

農夫知道一頭牛的位置,想要抓住它。農夫和牛都位于數軸上,農夫起始位于點N(0<=N<=100000),牛位于點K(0<=K<=100000)。農夫有兩種移動方式:

1、從X移動到X-1或X+1,每次移動花費一分鐘2、從X移動到2*X,每次移動花費一分鐘假設牛沒有意識到農夫的行動,站在原地不動。農夫最少要花多少時間才能抓住牛?

輸入兩個整數,N和K輸出一個整數,農夫抓到牛所要花費的最小分鐘數樣例輸入
5 17樣例輸出
4

這題用深搜肯定會炸,超時。數據太大了。

廣搜

#include<iostream>#include <queue>#include<cstdio>using namespace std;int main(){	int n, k;	cin >> n >> k;	queue<int> que;	int map[100001];	for (int i = 0; i < 100001; i++)		map[i] = 100000;	map[n] = 0;	que.push(n);	while (que.size()){		int num = que.front(); que.pop();		if (num == k)			break;		if (num + 1 <= 100000 && map[num + 1] == 100000) {			map[num + 1] = map[num] + 1;			que.push(num + 1);		}		if (num - 1 >= 0 && map[num - 1] == 100000){			map[num - 1] = map[num] + 1;			que.push(num - 1);		}		if (2 * num <= 100000 && map[2 * num] == 100000){			map[2 * num] = map[num] + 1;			que.push(2 * num);		}	}	cout << map[k] << endl;	return 0;}這題沒啥要描述的。理解后再做迷宮最短路徑就容易很多了..


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹿邑县| 和政县| 阿拉善盟| 漯河市| 奉新县| 嘉兴市| 南通市| 滁州市| 祁连县| 乌兰察布市| 托里县| 广灵县| 大化| 萨迦县| 防城港市| 昌乐县| 西贡区| 龙游县| 赞皇县| 津南区| 桐柏县| 吴忠市| 德令哈市| 翁源县| 奉贤区| 京山县| 揭西县| 石嘴山市| 榆社县| 高碑店市| 绥芬河市| 南阳市| 青河县| 黄石市| 泽库县| 农安县| 上栗县| 华安县| 盐山县| 卓资县| 梅河口市|