POJ2367(拓扑排序裸题
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
typedef long long ll;
const int N = ;
int in[N],n,r;
vector<int>ans;
vector<int>edge[N];
priority_queue<int,vector<int>,greater<int> >priq;
int main(){
ios::sync_with_stdio();
cin>>n;
for(int i = ;i <= n;++i){
while(cin>>r){
if(r==)break;
edge[i].push_back(r);in[r]++;
}
}
for(int i = ;i <= n;++i)if(in[i]==)priq.push(i);
while(!priq.empty()){ int p = priq.top();priq.pop();
ans.push_back(p);
for(int j = ;j < edge[p].size();++j){
int y = edge[p][j];in[y]--;
if(!in[y])priq.push(y);
}
}
for(int i = ;i < n;++i){
if(i!=n-)cout<<ans[i]<<" ";
else cout<<ans[i]<<endl;
}
return ;
}
没什么好说的?自己练习拓排概念用的,目前理解的便是,找到入度为0的点加入队列,如果有字典序或者什么要求则用优先队列自定义排序写,然后删除加入队列的点所连接的边(减去其
指向的点的入度)然后当出现入度为0的点时再次加入队列,直到结束。如果最后队列中的点与所有点数目不一致,就说明有环或者别的,不能使用拓排
POJ2367(拓扑排序裸题的更多相关文章
- POJ2367 拓扑排序 裸题 板子题
http://poj.org/problem?id=2367 队列版 #include <stdio.h> #include <math.h> #include <str ...
- UVa 10305 - Ordering Tasks (拓扑排序裸题)
John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...
- uva 10305 拓扑排序裸题
https://vjudge.net/problem/UVA-10305 目前没学dfs做法,用的队列做法,每次找到一个入度为零的点出队后更新其他点,再加入入度为零的点直到查找完毕,这个题目显然一定有 ...
- HDU1285(拓扑排序裸题
..被多组测试坑了一波 #include<iostream> #include<vector> #include<queue> using namespace st ...
- 三维拓扑排序好题hdu3231
/* 三维拓扑排序 将每个长方体分解成六个面,xyz三维进行操作 每一维上的的所有长方体的面都应该服从拓扑关系,即能够完成拓扑排序=如果两个长方体的关系时相交,那么其对应的三对面只要交叉即可 如 a1 ...
- HDU 1285 经典拓扑排序入门题
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- HDU1285-确定比赛名次-拓扑排序板子题
有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道 ...
- HDU 1285 确定比赛名次 拓扑排序模板题
http://acm.hdu.edu.cn/showproblem.php?pid=1285 #include <cstdio> #include <cstdlib> #inc ...
- POJ 2367 Genealogical tree 拓扑排序入门题
Genealogical tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8003 Accepted: 5184 ...
随机推荐
- IDEA项目结构只剩下了pom,而代码都找不到了
大体效果就是下面这个样子的, 只剩下一个pom文件了. 解决方式: 本来想彻底排查下的,但是最后发现 直接删除.idea文件, 重新引入项目,就可以解决,可能就是编译器发神经吧 下面是排查的过程,不过 ...
- Spring创建对象的方法
1.利用无参构造器创建对象. 在代码中有一个学生类Student.java package no1; public class Student { public Student(){ System.o ...
- win10系统配置FTP
FTP是一种远程传输协议,支持这种协议的就是FTP服务器.我们可以在自己的PC机上创建一个.然后通过网页就可以访问FTP服务器下的文件夹. 搭建过程 1.首先需要开启FTP服务.在菜单中打开控制面板. ...
- IntelliJ IDEA 2017.3 多模块右边栏 maven projects,maven项目命名问题
我新建了一个maven web 模块,命名为cloud-access,可是install的时候,名字突然变为cloud-access Maven Webapp了,我就纳闷了,怎么回事.找了很久没发现原 ...
- LeetCode205----同构字符串
给定两个字符串 s 和 t,判断它们是否是同构的. 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的. 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序.两个字符不能映射到同一 ...
- LeetCode 无重复字符的最长子串(探索字节跳动)
题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "a ...
- ffmpe转码添加时间水印
ffmpeg出直播流的时候 添加时间水印的话可以观察延迟 录制也方便查问题下面的命令 需要用到的字体自己百度下载一下或者到C:\Windows\Fonts复制一下 ffmpeg -stream_loo ...
- k8s-helm02-----helm常用命令
查看在存储库中可用的所有 Helm charts helm search helm status 查询一个特定的 Release 的状态. helm status XXX
- C# 批处理制作静默安装程序包
使用批处理+WinRAR制作静默安装程序包 @echo 安装完窗口会自动关闭!!! @echo off start /wait Lync.exe /Install /Silent start /wai ...
- pip安装django出错 Could not install packages due to an EnvironmentError: [Errno 13]
pip install django 下载安装Django报错, 按照提示的建议改为 pip install --user django 安装完成