Codeforces Round #536 (Div. 2)--1106D - Lunar New Year and a Wander
阿新 • • 發佈:2019-02-22
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