cin>>t;
while (t--)
{
cin>>n;
cin>>m;
if (n==m)
cout<<"0
";
else
{
//Breadth First Search Tree:
queue <gnode*> gqueue;
bft_data bft=bft_data();
list<gnode>* gp;
list<gnode>::iterator it;
gp=_gfind(graph,n);// finds list containing gnode with n value
gnode* st=gfind(gp,n),*tmp,*_st;//finds gnode with n value
_st=st;
bft.w[st->v]=0;
bft.pn[st->v]=NULL;
bft.c[st->v]=1;
gqueue.push(st);
while (!gqueue.empty())
{
st=gqueue.front();
gqueue.pop();
gp=_gfind(graph,st->v);
it=(*gp).begin();
for (++it;it!=(*gp).end();it++)//initialized with ++it to skip fist element of list
{
tmp=&(*it);
// cout<<tmp->v<<"
";
// getchar();
if (bft.c[tmp->v]==0)
{
bft.pn[tmp->v]=st;
bft.c[tmp->v]=1;
bft.w[tmp->v]=bft.w[st->v]+1;
gqueue.push(tmp);
}
}
}
if(bft.w[m]!=SIZE)
cout<<bft.w[m]<<"
";
else
cout<<"Impossible
";
bft.~bft_data();
}
}
该法典通过建造树苗来计算出距离的 b/ value。 但是,有些树苗是在外部的首次渗透中建造的,而 lo则保留其真实性,而 lo则不会对树脂产生影响。
页: 1
bfs是类硬物:
class bft_data
{
public:
int w[SIZE],c[SIZE];
gnode* pn[SIZE];
bft_data()
{
memset(w,SIZE,SIZE);
memset(c,0,SIZE);
memset(pn,NULL,SIZE);
}
};