首页 > 其他分享 >拓扑排序

拓扑排序

时间:2023-12-08 22:26:14浏览次数:31  
标签:toposort din int 拓扑 tp 排序

const int N = 100010;
int n,m,a,b;
vector<int> e[N], tp;
int din[N];//入度数组

bool toposort(){
  queue<int> q;
  for(int i = 1; i <= n; i++)
    if(din[i]==0) q.push(i);
  while(q.size()){
    int x=q.front(); q.pop();
    tp.push_back(x);
    for(auto y : e[x]){
      if(--din[y]==0) q.push(y);
    }
  }
  return tp.size() == n;
}
int main(){
  cin >> n >> m;
  for(int i=0; i<m; i++){
    cin >> a >> b;
    e[a].push_back(b);
    din[b]++;
  }
  if(!toposort()) puts("-1");
  else for(auto x:tp)printf("%d ",x);
  return 0;
}

标签:toposort,din,int,拓扑,tp,排序
From: https://www.cnblogs.com/mathiter/p/17889160.html

相关文章

  • SQL无法解决排序规则 Chinese_PRC_CI_AS 和 Latin1_General_CI_AS 的冲突
    最近在执行一些跨库关联查询语句的时候提示了“Cannotresolvethecollatiorconflictbetween"Chinese_PRC_CiAs"and"soLLatini_General_CPi_CiAs"intheequaltolperatn”的错误,查询整理一下相关资料如下:排序规则排序规则指定表示数据集中每个字符的位模式。排序......
  • 【算法】【线性表】搜索旋转排序数组(无重复数据)
    1 题目给定一个有序数组,但是数组以某个元素作为支点进行了旋转(比如,0124567 可能成为4567012)。给定一个目标值target进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。样例1:输入:数组=[4,5,1,2,3]......
  • 后缀排序
    先挂个代码和博客吧blog#include<bits/stdc++.h>usingnamespacestd;#defineriregisterint#definegcgetchartemplate<classT>voidin(T&x){x=0;boolf=0;charc=gc();while(c<'0'||c>'9'){if(c=......
  • 排序 - 选择排序 & 堆排序
    选择排序简单选择排序算法描述n-1次遍历,每次选出一个未排序区域中的最小元素放入已排序区域中的合适位置。算法实现voidSelectSort(SqList&L){for(i=1;i<L.length;i++){k=i;for(j=i+1;j<=L.length;j++)if(L.r[j].ke......
  • 算法【快速排序】
    算法【快速排序】快速排序。选择一个作为比较的元素,这里我们选择首元素,这个元素我叫他‘比较元素’;前后两个指针(其实是索引变量)同时往后和往前进行遍历,开头的指针遇到比‘比较元素’大的元素停下来(空循环体的循环即可实现),末尾的指针往前遍历,遇到比‘比较元素’小的元素停下来;两个......
  • 共享式以太网采用总线型拓扑结构通信方式简介
    共享式以太网是早期局域网的主要形式,它主要采用总线型拓扑结构进行通信。在这种结构中,所有的站点都通过相应的硬件接口直接连接到一条共享的通信介质上。这条通信介质通常为同轴电缆,各个站点能被所有其他的站点接收。在通信方式上,共享式以太网主要采用CSMA/CD(CarrierSenseMultipl......
  • a-table(AntDesign Vue)实现表格行上下拖动排序
    参考链接:https://blog.csdn.net/song_de/article/details/125218350https://blog.csdn.net/m0_61342618/article/details/132556739?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1-132556739-blog-125218350.235v39pc_releva......
  • 桶排序
    前K个高频元素给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按任意顺序返回答案。 示例1:输入:nums=[1,1,1,2,2,3],k=2输出:[1,2]示例2:输入:nums=[1],k=1输出:[1] 提示:1<=nums.length<=105k的取值范围是[1,......
  • Js中 列表里字典排序问题
    我又要给这样的列表,我想把出现"key3"的字典放到列表的后边constlist=[{key1:'value1',key2:'value2'},{key1:'value3',key2:'value4'},{key3:'value5',key2:'value6'},{key4:'......
  • 上机编程字典序排序总结
    1         字典序概念2021-0319上机编程认证的入门级&工作级第二题-可漫游服务区,输出结果要求字符串按照字典序降序排序,本文对各编程语言字典序排序方法做一个总结。题目描述漫游(roaming)是一种移动电话业务,指移动终端离开自己注册登记的服务区,移动到另一服务区(地区或......