那里死循环了,全TLE?
#include<bits/stdc++.h>
using namespace std;
int t,x,y,s;
bool vis[12];
struct node
{
int layer;
int cnt;
};
queue<node> q;
int main()
{
cin>>s;
for(int i=1;i<=s;i++)
{
while(!q.empty())
{
q.pop();
}
q.push({x,0});
cin>>x>>y;
while(!q.empty())
{
node t=q.front();
if(vis[t.layer]==true)
{
continue;
}
vis[t.layer]=true;
if(t.layer==y)
{
cout<<t.cnt<<endl;
break;
}
int z1=t.layer+1,z2=t.layer-1,z3=t.layer*2;
if(!vis[z1]&&z1<=0&&z1>100000)
{
q.push({z1,t.cnt+1});
}
if(!vis[z2]&&z2<=0&&z2>100000)
{
q.push({z2,t.cnt+1});
}
if(!vis[z3]&&z3<=0&&z3>100000)
{
q.push({z3,t.cnt+1});
}
}
}
return 0;
}