1. 程式人生 > >Codeforces Round #536 (Div. 2)--1106D - Lunar New Year and a Wander

Codeforces Round #536 (Div. 2)--1106D - Lunar New Year and a Wander

ORC pri div clu return bsp def mes nbsp

https://codeforces.com/contest/1106/problem/D

題意:求出字典序最小的走法

解法:走到每個點,都選取與這個點連通的序號最小的點,並且這個序號最小的點沒有被訪問過。

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,m;
    cin>>n>>m;
    vector<vector<int> > g(n+1);
    for(int i=0;i<m;i++){
        int a,b;
        cin
>>a>>b; g[a].push_back(b); g[b].push_back(a); } vector<int> visit(n+1); vector<int> path; priority_queue<int,vector<int>,greater<int> > q; q.push(1); visit[1]=1; while(!q.empty()){ int c=q.top(); q.pop(); path.push_back(c);
for(int j=0;j<g[c].size();j++){ int d=g[c][j]; if(visit[d]!=1){ q.push(d); visit[d]=1; } } } for(int i=0;i<path.size();i++){ cout<<path[i]<< ; } cout<<endl; return 0; }

Codeforces Round #536 (Div. 2)--1106D - Lunar New Year and a Wander