zoukankan      html  css  js  c++  java
  • Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs(树,思维题)

    题意:

    给有 n 个点的树的 n-1 条边从 0 到 n-2 编号,使得任意两点路径中未出现的最小数最小的方案。

    思路:

    先给所有度为 1 的点所在边编号,之后其他点可以随意编排。

    #include <bits/stdc++.h>
    using namespace std;
     
    const int M=110000;
     
    vector<vector<int>> e(M);
    vector<pair<int,int>> a;
     
    map<pair<int,int>,int> m;
     
    int main()
    {
        int n;cin>>n;
        for(int i=0;i<n-1;i++){
            int u,v;cin>>u>>v;
            e[u].push_back(v);
            e[v].push_back(u);
            a.push_back(make_pair(u,v));
        }
    
        int num=1;
        for(int i=1;i<=n;i++){
            if(e[i].size()==1){
                for(int j:e[i]){
                    pair<int,int> p1=make_pair(i,j);
                    pair<int,int> p2=make_pair(j,i);
                    if(!m[p1])
                        m[p1]=m[p2]=num++;
                }
            }
        }
    
        for(int i=1;i<=n;i++){
            if(e[i].size()!=1){
                for(int j:e[i]){
                    pair<int,int> p1=make_pair(i,j);
                    pair<int,int> p2=make_pair(j,i);
                    if(!m[p1])
                        m[p1]=m[p2]=num++;
                }
            }
        }
    
        for(auto i:a){
            cout<<m[i]-1<<endl;
        }
    
        return 0;
    }
  • 相关阅读:
    Excel Formulas-Vlookup
    C#字符串与unicode互相转换
    string.IsNullOrWhiteSpace
    CREATE SEQUENCE sqlserver
    error CS1056
    WebExceptionStatus
    运维踩坑记
    C# 快捷命令
    sqlserver2019安装教程
    sql server 数据库mdf文件和log文件过大问题
  • 原文地址:https://www.cnblogs.com/Kanoon/p/12495664.html
Copyright © 2011-2022 走看看