我觉得是我脑子瓦特了,但是我就是看不出毛病。
如下是两个类似的程序,而且两种方法我都用过。
do{
int stt = st.top();
head[stt] = curr;
tmp[curr].push_back(stt);
st.pop();
vis[stt] = false;
//在这输出stt和pos测试过
}while(stt!=pos);
和
while(1){
int stt = st.top();
head[stt] = curr;
tmp[curr].push_back(stt);
st.pop();
vis[stt] = false;
if (stt==pos) break;
}
然额,在做p2002的时候,第一种样例就re了,而第二种过了。
对于第一种,样例中做的第一次我就发现st==pos了,但是这循环就是不停下来。有dalao能解释下吗?