社区讨论

求助,全员RE+死机

P1588[USACO07OPEN] Catch That Cow S参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mi7xxar8
此快照首次捕获于
2025/11/21 05:25
4 个月前
此快照最后确认于
2025/11/21 05:25
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>//p1588 
using namespace std;
const int maxn=100001;
const int maxl=100000;
int t,x,y;
bool use[maxn];
struct node
{
	int x;//位置 
	int steps;//到达x所需步数的即广搜深度
	
	node(int xx,int s) 
	{
		x=xx;
		steps=s;
	 } 
};
queue<node>q; 
int main()
{
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		cin>>x>>y; 
		memset(use,0,sizeof(use));
		q.push(node(x,0));
		use[x]=1;
		while(!q.empty())
		{
	
		node s=q.front();
		//cout<<"当前队首节点位置"<<s.x<<"  深度"<<s.steps<<endl;
			if(s.x==y)
			{
				cout<<s.steps<<endl;
				break; 
			 } 
			else//bfs下一层 
			{
				//后退一个位置 
				if(!use[s.x -1]&&s.x -1>=0)
				{
					q.push(node(s.x -1,s.steps+1)); 
					use[s.x -1]=0; 
				}
				
				//前进一个位置
				if(!use[s.x +1]&&s.x +1<=maxl)
				{
					q.push(node(s.x +1,s.steps+1));
					use[s.x +1]=0; 
				 } 
				 //前进*2个位置
				 if(!use[s.x *2]&&s.x *2<=maxl)
				 {
				 	q.push(node(s.x *2,s.steps+1)); 
					use[s.x *2]=0; 
				  } 
				 q.pop();
				 
			}
		}
		
		
	}
 
	//cout<<clock();
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...