一维数组的移动
  • 板块学术版
  • 楼主Nostopathy
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/7 14:31
  • 上次更新2024/7/7 14:55:25
查看原帖
一维数组的移动
1286053
Nostopathy楼主2024/7/7 14:31
#include <iostream>
#include <queue>
using namespace std;
struct point{
	int num, step;
};
int n, begin_, end_;
int visit[5001];
queue <point> searchlist;
int search(){
	point cur;
	cur.num = begin_;
	cur.step = 0;
	searchlist.push(cur);
	while(searchlist.empty() == false){
		cur = searchlist.front();
		searchlist.pop();
		if(cur.num == end_){
			return cur.step;
		}
		if(visit[cur.num]){
			continue;
		}
		visit[cur.num] = 1;
		searchlist.push({cur.num + 1, cur.step + 1});
		searchlist.push({cur.num - 1, cur.step + 1});
		searchlist.push({cur.num * 2, cur.step + 1});
		searchlist.push({cur.num / 2, cur.step + 1});
	}
	return -1;
}
int main(){
	cin >> n >> begin_ >> end_;
	cout << search() << '\n';
}

问题:re

分数:67

帮帮忙

2024/7/7 14:31
加载中...