hdu 2647拓扑排序 结构体模拟容器】的更多相关文章

#include<stdio.h> #include<queue> #include<iostream> using namespace std; #define  N  11000 int n,m,sum; struct node { int indegree,num; int value,next[300]; }now[N]; int Max(int a,int b) { return a>b?a:b; } int find() {        queue&…
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2647 老板给员工发工资,每个人的基本工资都是888,然后还有奖金,然后员工之间有矛盾,有的员工希望比某员工的奖金多,老板满足了所以员工的这种心思,而且老板下午发的总工资最少,问最少是多少?比如 a b 表示a的工资比b要高(高一块钱),当出现a b   b c   c a这种环的时候输出-1 拓扑排序http://www.cnblogs.com/tonghao/p/4721072.html 小指向大…
#include<stdio.h> #include<queue> #include<vector> #include<iostream> using namespace std; #define  N  11000 int n,m,sum; int indegree[N],value[N]; vector<int>now[N]; int Max(int a,int b) { return a>b?a:b; } int find() {  …
题意:每个人的工资至少888,然后有m个条件,前者比后者要多.求最少工资. 分析: 最开始的开邻接矩阵的肯定超时,如果dfs,会出现由于刚开始不是从入度为0的点出发,后期修改不了.比较麻烦. 正确方式是,用队列实现,不需要像普通队列一样,用vis数组标记,而是根据入度是否为0的标准加入队列. /* #include <bits/stdc++.h> using namespace std; const int maxn = 10000+5; int n,m; vector<int>…
n个数,已经有大小关系,现给m个约束,规定a在b之前,剩下的数要尽可能往前移.输出序列 大小关系显然使用拓扑结构,关键在于n个数本身就有大小关系,那么考虑反向建图,优先选择值最大的入度为零的点,这样得到的序列就是从大到小的,最后倒序输出就行了. 写这题的时候头好痛阿肚子好痛阿,再也不想熬夜了,一点效率都没有. /** @Date : 2017-09-29 19:29:12 * @FileName: HDU 4857 拓扑排序 + 优先队列.cpp * @Platform: Windows * @…
有n个成绩,给出m个分数间的相对大小关系,问是否合法,矛盾,不完全,其中即矛盾即不完全输出矛盾的. 相对大小的关系可以看成是一个指向的条件,如此一来很容易想到拓扑模型进行拓扑排序,每次检查当前入度为0的点个数是否大于1,如大于1则不完全:最终状态检查是否所有点都具有大小关系,遍历过说明有入度.但是由于“=”的存在,要考虑将指向相等数的边全部移到一个数上,故使用并查集预先将相等的点连成块,再进行拓扑排序就行了. /** @Date : 2017-09-22 13:58:31 * @FileName…
http://www.cnblogs.com/newpanderking/archive/2012/10/18/2729566.html #include<stdio.h> #include<iostream> #include<vector> #include<queue> using namespace std; const int N=11000; vector<int>link[N];//容器来是模拟邻接表 int pre[N],a[N]…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5638 题意: 给你一个DAG图,删除k条边,使得能个得到字典序尽可能小的拓扑排序 题解: 把拓扑排序的算法稍微改一下,如果某个顶点的入度小于k也把它加到优先队列里面去. k减小后队列里面会有些点不满足<=k,直接踢出来就好了. 代码: #include<iostream> #include<cstring> #include<cstdio> #include<…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5961 题目为中文,这里就不描述题意了. 思路: 从题目陈述来看,他将一个有向图用一个邻接矩阵来表示,并且分为两个图P.Q,但是它们是有内在联系的,即:P+Q,抛去方向即为完全图. 题目都是中文,这里就不翻译了.我们可以从题目中知道,如果P.Q均满足传递性,那么P与(Q的反向图)生成的有向图应该无环. 所以,简单一个拓扑排序检查是否有环即可,P.Q合为一张图,跑一遍,这个还是很快的. 时长:3432MS…
题意:给出一堆人的喜爱关系,判断有没有三角恋-_-|| 其实就是判断是否存在三条边的环. 一开始我是这么想的: 先拓扑排序,如果没有环那就直接No 如果有环?挑出环里的任意一个点(拓扑排序结束后不在拓扑序里面的点就在环里),然后从这个点开始dfs,看三步之后能不能回到这个点.(可以证明,只要考察一个点就行) 然而TLE了= = 其实仔细想想可以发现,后面那个dfs没有必要. 注意一个细节:A[i][j]<>A[j][i].也就是说若i到j不通,那么j到i一定通 可以证明,若这样的图中存在环,那…