搞CSP比賽,編譯錯誤,DeVC過了,顯示編譯錯誤
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
#include<string.h>
using namespace std;
int n,m;
bool visited[100010];
struct edge
{
int to,order;
};
vector<vector<edge> >allnode;
bool big(edge &e1,edge &e2)
{
return e1.to<e2.to;
}
int num=0;
stack<int>sta;
void show()
{
int ary[10010];
int tmp=0;
while(!sta.empty())
{
ary[tmp++]=sta.top();
sta.pop();
}
for (int i=tmp-1;i>=0;i--)
{
cout<<ary[i]<<" ";
}
}
bool b=false;
void dfs(int n)
{
for (int i=0;i<allnode[n].size();i++)
{
if (!visited[allnode[n][i].order])
{
visited[allnode[n][i].order]=true;
num++;
sta.push(allnode[n][i].to);
if (num==m)
{
b=true;
show();
}
dfs(allnode[n][i].to);
if(b)
{
return ;
}
if (!sta.empty())
{
sta.pop();
}
num--;
visited[allnode[n][i].order]=false;
}
}
}
int main()
{
memset(visited,0,sizeof(visited));
cin>>n>>m;
int a,s;
allnode.resize(n+1);
for (int i=0;i<m;i++)
{
cin>>a>>s;
edge tmpe;
tmpe.to=s;
tmpe.order=i;
allnode[a].push_back(tmpe);
tmpe.to=a;
allnode[s].push_back(tmpe);
}
for (int i=0;i<n;i++)
{
sort(allnode[i].begin(),allnode[i].end(),big);
}
sta.push(1);
dfs(1);
if (!b)
{
cout<<-1;
}
return 0;
}
uj5u.com熱心網友回復:
代碼 ,有點長,,uj5u.com熱心網友回復:
搞清楚了,sort所用的函式不能參考傳遞,會報錯轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/54907.html
標籤:基礎類
上一篇:關于多型中解構式的問題
