题目链接:http://poj.org/problem?id=3687

题意:n个重量为1~n的球,给定一些编号间的重量比较关系,现在给每个球编号,在符合条件的前提下使得编号小的球重量小。(先保证1号球最轻,其次2号……)

如果从前扫的话,当遇到入度为0的点,却不一定是1,这里,我参考了金海峰的分析,从重的开始扫,给最重的附上n,n-1... ...,再去掉重的点连的边。

#include <stdio.h>
#include <string.h> #define MAXN 205 bool g[MAXN][MAXN];
int in[MAXN];
int vis[MAXN]; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(g,false,sizeof(g));
memset(vis,false,sizeof(vis));
memset(in,,sizeof(in)); int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<m;i++)
{
int a,b;
scanf("%d%d",&a,&b);
if(!g[b][a])
in[a] ++;
g[b][a]=true;
} int ans[MAXN];
bool flag = true;
for(int i=n;i>=;i--)
{
int q = -;
for(int j=n;j>=;j--)
{
if(!vis[j]&&in[j]==)
{
q = j;
break;
}
}
if(q==-)
{
flag = false;
break;
}
vis[q] = true;
ans[q] = i;
for(int j=;j<=n;j++)
{
if(g[q][j])
in[j] --;
}
} if(flag)
{
for(int i=;i<n;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[n]);
}
else puts("-1"); }
return ;
}

Poj(3687),拓扑排序,的更多相关文章

  1. poj 3687(拓扑排序)

    http://poj.org/problem?id=3687 题意:有一些球他们都有各自的重量,而且每个球的重量都不相同,现在,要给这些球贴标签.如果这些球没有限定条件说是哪个比哪个轻的话,那么默认的 ...

  2. POJ 3249 拓扑排序+DP

    貌似是道水题.TLE了几次.把所有的输入输出改成scanf 和 printf ,有吧队列改成了数组模拟.然后就AC 了.2333333.... Description: MR.DOG 在找工作的过程中 ...

  3. poj 3249 拓扑排序 and 动态规划

    思路:我们首先来一遍拓扑排序,将点按先后顺序排列于一维数组中,然后扫描一遍数组,将每个点的出边所连接的点进行更新,即可得到最优解. #include<iostream> #include& ...

  4. poj 2585 拓扑排序

    这题主要在于建图.对9个2*2的小块,第i块如果出现了不等于i的数字,那么一定是在i之后被brought的.可以从i到该数字建一条边. 图建好后,进行一次拓扑排序,判段是否存在环.若存在环,那么就是B ...

  5. Sorting It All Out POJ - 1094 拓扑排序

    题意:给N个字母,和M个偏序关系 求一个可确定的全序,可确定是指没有其他的可能例如A>B D>B 那么有ADB DAB两种,这就是不可确定的其中,M个偏序关系可以看做是一个一个按时间给出的 ...

  6. nyoj 349 (poj 1094) (拓扑排序)

    Sorting It All Out 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 An ascending sorted sequence of distinct ...

  7. POJ 1094 拓扑排序

    Description:      规定对于一个只有大写字母的字符串是有大小顺序的.如ABCD.即A<B.B<C.C<D.那么问题来了.现在第一行给你n, m代表序列里只会出现前n的 ...

  8. POJ 1128 拓扑排序 + 深搜

    /* (⊙v⊙)嗯 貌似是一个建图 拓扑+深搜的过程.至于为什么要深搜嘛..一个月前敲得题现在全部推了重敲,于是明白了.因为题意要求如果有多个可能的解的话. * 就要输出字典序最小的那个.所以可以对2 ...

  9. poj 2367 拓扑排序入门

    Description The system of Martians' blood relations is confusing enough. Actually, Martians bud when ...

随机推荐

  1. swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法

    在上个小节,我们完成了平台的产生.那么我们来实现一下让平台移动.平台的移动,我们只需要在平台工厂类中写好移动的方法,然后在GameScene类中统一控制就行了. 在GameScene类中,有个upda ...

  2. PostgreSQL表空间

    postgres=# \h create tablespace Command: CREATE TABLESPACEDescription: define a new tablespaceSyntax ...

  3. ofbiz进击 第一节。 新建自己的webapp项目

    创建一个webapp的过程更新下来项目(直接从svn上面切下来就好),要先ant clean 下,然后在重新ant下.一: start sheel here :ant create-component ...

  4. 全国各地电信DNS服务器地址

    全国各地电信DNS服务器地址 北京DNS地址:202.96.199.133 202.96.0.133 202.106.0.20 202.106.148.1 202.97.16.195 上海DNS地址: ...

  5. 去掉vim的高亮的方法

    使用vim时经常因为误用了组合键而进行了搜索操作,搜索到的内容会被加上背景色,而且背景色一直保持着,就算下一次打开这个文件,还会显示搜索到内容的背景色 在vim中使用一个命令即可去掉: nohl

  6. 代码坏味道特别篇————Long parameter List 过长的参数列表

    刚开始学习编程时,老师说:讲方法所需要的东西都以参数的形式传入,那是我们好像还没学OO这个东东,要不就弄成全局变量,我擦,全局变量可牛逼了,刚开始学习的时候我们都在用全局变量,可是后来工作了,经理说不 ...

  7. 0-9、a-z、A-Z 随机数

    MXS&Vincene  ─╄OvЁ  &0000006 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...

  8. 根据linux内核源码查找recv返回EBADF(errno 9)的原因

    linux的内核版本是2.6.18,x86_64. man里的解释是: EBADF The argument s is an invalid descriptor 我的模拟测试环境是: 前端loadr ...

  9. wxPython_Phoenix在线安装

    转自:http://blog.csdn.net/xiaodong193/article/details/51920283 wxpython在python 3.X下变成了wxpython Project ...

  10. 161115、MyBatis 通过包含的jdbcType类型

    MyBatis常用jdbcType类型 BIT         FLOAT      CHAR           TIMESTAMP       OTHER       UNDEFINEDTINYI ...