T飞了,68
查看原帖
T飞了,68
1426624
TangLingxin楼主2025/1/3 18:58
#include <bits/stdc++.h>
using namespace std;
const int maxn=500000+10;
int n,m,U,V,tot,cur[maxn],res[maxn];
vector<int> e[maxn];
bitset<maxn> vis;
inline void dfs(int u,int pa)
{
    cout<<u<<' ';
    for(int v:e[u]) if(v!=pa) dfs(v,u);
}
inline void dfs2(int u)
{
    if(vis[u]) return;vis[u]=true;cur[++tot]=u;
    for(int v:e[u]) if(!((u==U&&v==V) 
        ||(u==V&&v==U))) dfs2(v);
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> n >> m;
    for(int i=1;i<=m;i++)
	{
        int u,v;cin >> u >> v;
        e[u].push_back(v);e[v].push_back(u);
    }
    for(int i=1;i<=n;i++) sort(e[i].begin(),e[i].end());
    if(n==m)
	{
        for(U=1;U<=n;U++)
            for(int v:e[U])
			{
                V=v;vis.reset();tot=0;dfs2(1);
                if(tot<n) continue;
                for(int i=1;i<=n;i++)
				{
                    if(!res[i]||cur[i]<res[i])
					{
                        for(int j=1;j<=n;j++) res[j]=cur[j];
                        break;
                    }
                    if(cur[i]>res[i]) break;
                }
            }
        for(int i=1;i<=n;i++) cout<<res[i]<<' ';
    } else dfs(1,0);
    return 0;
}

提交记录

i=1inf12i=1\sum_{i = 1}^{inf} \frac{1}{2^i}=1
2025/1/3 18:58
加载中...