拓扑排序
ramay7
Life is not short,but float.
展开
-
HDU 1285 确定比赛名次(字典序最小的拓扑排序)
题目链接: HDU 1285 确定比赛名次 题意: 输出拓扑排序字典序最小的方案。 分析: 这道题和UESTC 1150 排名表区别还是(比较)明显的。#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <climits>#incl原创 2016-07-17 18:29:18 · 1030 阅读 · 0 评论 -
UESTC 1150 排名表(拓扑排序、很容易错)
题目链接: UESTC 1150 排名表 题意: 给出一个nn个人的已知的mm个排名顺序:a[i]a[i]在b[i]b[i]之前。输出这nn个人的排名顺序的名次,如果有多解让编号为1的人的名次尽量小,然后让编号为2的人的名次尽量小,然后让编号为3的人的名次尽量小……。如果无解输出−1-1。 数据范围:0≤n≤200,0≤m≤400000 \leq n \leq 200,0\leq m \le原创 2016-07-17 15:37:08 · 849 阅读 · 0 评论 -
POJ 2585 Window Pains(建立优先关系、拓扑排序)
题目链接; POJ 2585 Window Pains 题意: 给一个4∗44*4的方格表示屏幕,1−−91--9每个数字可以用2∗22*2的方格出现在屏幕上的特定位置,让你判断这个屏幕是否合法。 分析: 这题难点在于建立相对顺序。 首先我们可以把每个位置可以出现的数字预处理出来。 然后判断每个位置出现的数字,比如说在(2,2)(2,2)位置可以出现:1,2,4,51,2,4,5。如果原创 2016-07-18 21:43:43 · 699 阅读 · 0 评论 -
HDU 5695 Gym Class(拓扑排序、优先队列)
题目链接; HDU 5695 Gym Class 题意: 定义序列每个元素的权值是在他之前包括自己的最小数。求序列权值和最大的拓扑排序。 数据范围:n≤105,m≤105n\leq 10^5,m\leq 10^5。 分析; 也就是每次从度为00的点中我们尽可能要得到编号大的点。优先队列搞下就好了。#include <iostream>#include <cstdio>#include原创 2016-07-18 22:06:47 · 450 阅读 · 0 评论 -
HDU 2647 Reward(拓扑排序)
题目链接: HDU 2647 Reward 题意: 有nn个人和mm条关系,表示A[i]A[i]的奖金必须比B[i]B[i]多,求总奖金和最小值。 数据范围:n≤10000,m≤20000n\leq 10000,m\leq 20000 分析; 把队列中的每个元素设有两个属性(pairpair):编号和奖金就好了。除了第一次0度的元素进队列,其余每次进队列奖金值+1就好了。#include原创 2016-07-18 22:16:37 · 311 阅读 · 0 评论 -
POJ 1094 Sorting It All Out(拓扑排序)
题目链接; POJ 1094 Sorting It All Out 题意: 给出nn,代表nn个元素,和mm条关系,问在哪条关系时可以确定顺序或者出现冲突或者不能确定顺序。 数据范围:2≤n≤26 2 \leq n \leq 26 分析; 主要是不能确定顺序的判断。 当队列中多余一个元素时是不能确定顺序的,但是这时有可能是冲突的。所以要还要判断是否冲突。 对于每条新加关系,进行一遍原创 2016-07-18 22:25:18 · 389 阅读 · 0 评论 -
HDU 1811 Rank of Tetris(并查集+拓扑排序)
题目链接; HDU 1811 Rank of Tetris 题意: nn个人,编号0−n−10-n-1。mm组关系可以是:A>B,A=B,A<BA>B,A=B,A<B。 问最终的关系是否确定或者出现冲突? 数据范围:0≤N≤10000,0≤M≤200000\leq N\leq 10000,0\leq M\leq 20000 分析: 能想到并查集把A=BA=B的情况合并就好做了。#inc原创 2016-07-18 22:35:01 · 503 阅读 · 0 评论