首页 > 其他分享 >848. 有向图的拓扑序列

848. 有向图的拓扑序列

时间:2023-03-30 17:33:56浏览次数:42  
标签:有向图 int 拓扑 入度 848 ++ ans

https://www.acwing.com/problem/content/850/

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
vector<int> p[N];    //vector变长数组来写邻接表 
queue<int> q;        //队列操作 
int d[N];            //统计入度 
int n,m,cnt,ans[N];  //ans数组记录答案 
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        cin>>x>>y;
        p[x].push_back(y); //构造邻接表 
        d[y]++;    //入度++ 
    }
    for(int i=1;i<=n;i++)
    {
        if(!d[i]) q.push(i); //统计最初入度,找入度为0的点 
    }
    while(q.size())
    {
        int t=q.front();
        q.pop();
        ans[cnt++]=t;
        for(int i=0;i<p[t].size();i++)
        {
            d[p[t][i]]--;   //删边操作 
            if(d[p[t][i]]==0) q.push(p[t][i]); //如果删完边后入度为0了,放入队列 
        }
    }
    if(cnt==n) for(int i=0;i<cnt;i++) printf("%d ",ans[i]); //存在拓扑序列打印 
    else printf("-1");
}

 

标签:有向图,int,拓扑,入度,848,++,ans
From: https://www.cnblogs.com/ljq2022/p/17273658.html

相关文章

  • 确定比赛名次 HDU - 1285 (拓扑排序)
    题意:有N个比赛队(1≤N≤500),编号依次为1,2,3,...,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比......
  • LeetCode 周赛 338,贪心 / 埃氏筛 / 欧氏线性筛 / 前缀和 / 二分查找 / 拓扑排序
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。上周末是LeetCode第338场周赛,你参加了吗?这场周赛覆盖的知识点很多,第四题......
  • Arcmap出现拓扑无效问题怎么解决
    在ArcMap中出现拓扑无效错误通常是由于要素类之间存在空间关系不一致或拓扑错误导致的。以下是几种可能的解决方案:运行“检查几何”工具,以确定是否存在几何错误。如果有几......
  • 能快速构建和定制网络拓扑图的WPF开源项目-NodeNetwork
    大家好,我是沙漠尽头的狼,今天介绍一个WPF开源项目-NodeNetwork,它可以帮助我们快速构建和定制网络拓扑图。一、前言在现代软件开发中,数据可视化和可交互性越来越受到关注。......
  • Copy of a Copy of a Copy (构造体,建边拓扑,箭头先后关系)
      提取性质:关键:改完一个点,就不能恢复2个点在一起一定不能改于是根据上面2点,枚举每一个点看看这个点需不需要改,如果要改就建一个边就行了,然后拓扑序一下......
  • 「AcWing学习记录」拓扑排序
    AcWing848.有向图的拓扑序列原题链接图的拓扑序列是针对有向图来说的,无向图是没有拓扑序列的。可以证明,有向无环图一定存在一个拓扑序列,所以有向无环图也被称为拓扑图......
  • TZOJ 5795: 奖金 拓扑排序
    描述  由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,YaliCompany总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们......
  • TZOJ 7690: 家谱树 拓扑排序
    描述 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。给出每个人的孩子的信息。输出一个序列,使得每个人的后辈都比那个人后列出。 输入 第1行一个......
  • 拓扑排序
      拓扑排序的核心就是找入度为零的点,然后把于该点相连接的边去掉,同时更新剩余点的入度,由于n可能很大,需要邻接表,(这里用vector模拟),也可以学习链式向前星。点击查看代......
  • 三种拓扑的对比以及共性基础问题
    对于电感设计而言,最恶劣的电压定义为峰值电流达到最大值时所对应的输入电压,这是一般电感设计的基础,1.改变电感值是不会影响Idc2.改变开关电源频率是不会影响Idc的3.......