社区讨论
求助,全员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 条回复,欢迎继续交流。
正在加载回复...