国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}這題沒啥要描述的。理解后再做迷宮最短路徑就容易很多了..


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大港区| 临洮县| 合肥市| 西华县| 志丹县| 工布江达县| 威宁| 常山县| 姚安县| 宁明县| 玉屏| 筠连县| 六盘水市| 麟游县| 万源市| 双城市| 禄劝| 华亭县| 东兰县| 晋州市| 贵溪市| 马边| 辽阳市| 乡城县| 浮山县| 长顺县| 噶尔县| 水城县| 南通市| 三门峡市| 通道| 兴海县| 小金县| 鹿邑县| 于都县| 松潘县| 余庆县| 梁河县| 西乌珠穆沁旗| 平阳县| 莱芜市|