224redfg

cpp 复制代码
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<queue>
#include<unordered_map>
#define int long long
using namespace std;
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t;
    cin >> t;
    while (t--)
    {
        //cout << "---------------------------------\n";
        int n;
        cin >> n;
        vector<vector<int>>g(n);
        vector<int>in(n);
        for (int i = 0;i < n-1;i++)
        {
            int u, v, x, y;
            cin >> u >> v >> x >> y;
            v--;u--;
            if (x > y)
            {
                g[v].push_back(u);
                in[u]++;
            }
            else
            {
                g[u].push_back(v);
                in[v]++;
            }
        }
        vector<int>seq;
        queue<int>q;
        for (int i = 0;i < n;i++)
        {
            if (in[i] == 0)
                q.push(i);
        }
        while (!q.empty())
        {
            int u = q.front();
            seq.push_back(u);
            q.pop();
            for (auto v : g[u])
            {
                in[v]--;
                if (in[v] == 0)
                    q.push(v);
            }
        }
        
        vector<int>ans(n);
        for (int i = 0;i < n;i++)
        {
            ans[seq[i]] = i + 1;
        }
        for (auto e : ans)
            cout << e << " ";
        cout << "\n";
    }
    return 0;
}
相关推荐
小师兄吃牛肉3 小时前
C语言中的nullptr有必要吗
c语言·c++·算法
lhbweilai5 小时前
深挖FreeRTOS内核实现(三)
c语言·stm32·单片机
xxwl5855 小时前
数据结构知识点和代码实现总结(C语言实现)
c语言·开发语言·数据结构
小灰灰搞电子6 小时前
C语言 <time.h> 头文件详解
c语言·time.h
C++ 老炮儿的技术栈7 小时前
sizeof操作符
c语言·c++·人工智能·mfc·c
wuminyu8 小时前
ForkJoinPool内部WorkQueue的Lock-Free数组操作以及并发任务窃取原理剖析
java·linux·c语言·jvm·c++
她说彩礼65万8 小时前
C语言 堆区和栈区
java·linux·c语言
小师兄吃牛肉10 小时前
C语言基本语法汇总
c语言
无忧.芙桃10 小时前
C++ 并查集详解:原理、实现与应用
c语言·c++·算法·leetcode