码迷,mamicode.com
首页 > 其他好文 > 详细

6.13每日一题题解

时间:2020-06-13 13:17:58      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:space   ace   test   https   set   cpp   pair   contest   ret   

E - Ehab and Path-etic MEXs

涉及知识点:

  • 思维

solution:

  • 其实这个题主要是题意比较难懂
  • 下面是我的做法:
  • 先记录下来每个点的入度,把入度为1的点的边从0到t开始赋值
  • 然后把那些没有包含入度为1的边赋值n - 2 到 t

std:

#include <iostream>
#include <unordered_set>
using namespace std;
const int N = 1e6 + 10;
int f[N];
pair<int,int>p[N];
int idx = 0;
int ans[N];
int main()
{
    int n;
    cin >> n;
    int idx1 = n - 2;
    for(int i = 0;i < n - 1;i ++)
    {
        int a,b;
        cin >> a >> b;
        p[i] = {a,b};
        f[a]++;
        f[b]++;
    }
    unordered_set<int>st;
    for(int i = 1;i <= n;i ++)
    {
        if(f[i] == 1){
            st.insert(i);
        }
        if(st.size() >= n - 1){
            break;
        }
    }
    for(int i = 0;i < n - 1;i ++)
    {
        int a = p[i].first,b = p[i].second;
        if(st.count(a) || st.count(b)){
            ans[i] = idx++;
        }
        else{
            ans[i] = idx1--;
        }
    }
    for(int i = 0;i < n - 1;i ++)
    {
        cout << ans[i] << endl;
    }
    return 0;
}

6.13每日一题题解

标签:space   ace   test   https   set   cpp   pair   contest   ret   

原文地址:https://www.cnblogs.com/QFNU-ACM/p/13113451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!