尤其要注意拓扑的分层问题 不难理解 就是不怎么好想到 拓扑的思路这里就不累述了

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
#define maxn 30007
using namespace std; int T;
int
n,m;
int
in[maxn];
vector<int> edge[maxn];
priority_queue<int> q;
int
main()
{

scanf("%d",&T);
while
(T--)
{

memset(in,,sizeof(in));
scanf("%d%d",&n,&m);
for
(int i =;i <= n;i++)
edge[i].clear();
int
a,b;
for
(int j =;j <= m;j++) {
scanf("%d%d",&a,&b);
in[a]++;
edge[b].push_back(a);
}

for
(int i =;i <= n;i++)
if
(!in[i]) q.push(i);
vector<int> ans;
while
(!q.empty()) {
a = q.top();
ans.push_back(a);
q.pop();
for
(int j =;j < edge[a].size();j++) {
b = edge[a][j];
in[b]--;
if
(in[b] ==) q.push(b);
}
}

for
(int i = ans.size()-;i > -;i--) {
if
(i !=) printf("%d ",ans[i]);
else
printf("%d\n",ans[i]);
}
}

return
;

hdu 4857 反向拓扑问题的更多相关文章

  1. hdu 4857 逆向拓扑排序+反向输出

    /*一组测试实例 4 4 2 3 1 2 4 */ #include<stdio.h> #include<string.h> #include<queue> usi ...

  2. hdu 4857 逃生 拓扑排序+PQ,剥层分析

    pid=4857">hdu4857 逃生 题目是求拓扑排序,但不是依照字典序最小输出,而是要使较小的数排在最前面. 一開始的错误思路:给每一个点确定一个优先级(该点所能到达的最小的点) ...

  3. hdu 4857 逆拓扑+大根堆(priority_queue)

    题意:排序输出:在先满足定约束条件下(如 3必需在1前面,7必需在4前面),在满足:1尽量前,其次考虑2,依次.....(即有次约束). 开始的时候,只用拓扑,然后每次在都可以选的时候,优先考虑小的, ...

  4. hdu 4857 逃生 拓扑排序+逆向建图

    逃生 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Descr ...

  5. HDU 4857 拓扑排序 优先队列

    n个数,已经有大小关系,现给m个约束,规定a在b之前,剩下的数要尽可能往前移.输出序列 大小关系显然使用拓扑结构,关键在于n个数本身就有大小关系,那么考虑反向建图,优先选择值最大的入度为零的点,这样得 ...

  6. 逃生(HDU4857 + 反向拓扑排序)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857 题面是中文题面,就不解释题意了,自己点击链接去看下啦~这题排序有两个条件,一个是按给定的那个序列 ...

  7. HDU 4857

    HDU 4857 (反向拓扑排序 + 优先队列) 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只能排成一行. 现在有n个人,从1标号到n.同时有一些奇怪的约束条件,每个都形如:a必须 ...

  8. codeforce E - Minimal Labels+hdu 4857

    两个题目的意思差不多 都是希望得出的拓扑序如果有多种 要求输出字典序小的情况 这里引用一个大佬的博客 关于为什么不能直接建图然后用小根堆解决这个问题(http://blog.csdn.net/rgno ...

  9. poj 3687 Labeling Balls【反向拓扑】

    Labeling Balls Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12246   Accepted: 3508 D ...

随机推荐

  1. Java 面向对象(十四)

    反射 反射是框架设计的灵魂 一.类的加载时机 当程序要使用某个类时,如果该类还未被加载到内存中,系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载 :就是指将class文件读入内存,并为 ...

  2. OpenResty之replace-filter-nginx-module

    原文: openresty/replace-filter-nginx-module 1. 概要 location /t { default_type text/html; echo abc; repl ...

  3. sklearn.GridSearchCV选择超参

    from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.model ...

  4. Xgboost建模

    xgboost参数 选择较高的学习速率(learning rate).一般情况下,学习速率的值为0.1.但是,对于不同的问题,理想的学习速率有时候会在0.05到0.3之间波动.选择对应于此学习速率的理 ...

  5. <JavaScript>使用onmousemove事件实现移动(拖拽)div 出现的关于offsetX的问题

    出现的问题如下图所示(截屏看不出来看log) 再移动鼠标的过程中会不断的出现异常值导致拖动的div不断切换位置,回到左上角. 我以为是冒泡机制导致的所以添加了下面一段阻止冒泡,随便也阻止了默认事件,但 ...

  6. Keyframe类-动画中关键帧概念

    package com.loaderman.customviewdemo; import android.animation.Animator; import android.animation.Ke ...

  7. main方法的详解

    格式 * public static void main(String[] args) {} 针对格式的解释 public 被jvm调用,访问权限足够大. static 被jvm调用,不用创建对象,直 ...

  8. ISO/IEC 9899:2011 条款6.4.6——标点符号

    6.4.6 标点符号 语法 1.以下之一     [  ]    (  )     {  }    .    ->    ++    --    &    *    +    -     ...

  9. 【PHP】解决数据库查询出来的中文内容显示为问号“??”

    方法一:在数据库连接后执行: mysql_query('SET NAMES utf8'); 代码: $dbconn=mysql_connect("localhost", " ...

  10. EasyUI动态生成菜单

    业务需求:不同角色有不同的权限,我们根据角色加载页面时展示不同的菜单.在easyUI中,菜单一般采用手风琴accordion组件进行展示,一级菜单下可以加载二级菜单,效果如下: 普通用户看到的菜: 管 ...