蒟蒻求助,4WA
查看原帖
蒟蒻求助,4WA
247359
WuhenGSL楼主2020/6/5 23:57

看不出来哪里错了

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#define N 100005
#define M 1000005
using namespace std;
struct node{
    int x,y;
}a[N];
int n,m;
int Root[N],Next[M],v[M],cnt=0;
bool vis1[N],vis2[N];
bool cmp(node a,node b){
    return a.y>b.y||(a.y==b.y&&a.x>b.x);    
}
void add(int _u,int _v){
    v[++cnt]=_v;
    Next[cnt]=Root[_u];
    Root[_u]=cnt;
}
void dfs(int k){
    printf("%d ",k);
    vis1[k]=true;
    for(int x=Root[k];x!=0;x=Next[x])
        if(!vis1[v[x]])dfs(v[x]);
}
int q[N],head=1,tail=0;
void bfs(){
	q[++tail]=1;
	vis2[1]=true;
	for(int head=1;head<=tail;++head){
        int k=q[head];
        for(int x=Root[k];x!=0;x=Next[x])
            if(!vis2[v[x]]){
                q[++tail]=v[x];
                vis2[v[x]]=true;
            }
    }
    for(int i=1;i<=tail;++i)printf("%d ",q[i]);
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;++i){
        cin>>a[i].x>>a[i].y;
    }
    sort(a+1,a+1+m,cmp);
    for(int i=1;i<=m;++i)
        add(a[i].x,a[i].y);
    dfs(1);
    cout<<endl;
    bfs();
    return system("pause");
}
2020/6/5 23:57
加载中...