链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 , 不算复杂的拓扑排序。 这道题不复杂,有一点需要考虑的就是当前保存在队列首的顶点的边删去时,会产生新的入度为0的顶点,这时产生的新的入度为0的顶点要比队列首的顶点要高一级,就是工资比他多1,这...
分类:
编程语言 时间:
2015-03-04 20:53:16
阅读次数:
120
题目大意:老板要发酬劳,但是工人酬劳不一样,有N个人,M种情况。a的酬劳一定
要高于b。每个人最低酬劳为888,问:老板最少要花费多少钱。
思路:以b->a为有向边建立拓扑排序,不满足排序就输出"-1",否则就进行拓扑排序,
将拓扑排序的点看成一层一层的,无入度的为第一层,通过一条边能走到的为第二层。
通过两条边才能走到的为第三层。每一层都比前一层多一块钱。最后输出总钱数。...
分类:
编程语言 时间:
2014-12-22 16:13:51
阅读次数:
252
此题的关键在于分层次,最低一层的人的奖金是888,第二层是888+1 …… 分层可以这样实现。建立反向图。在拓扑排序的时候,第一批入度为0的点就处于第一层,第二批处于第二层 …… 由于是逐个遍历入度为0的点,所以怎么实现上面所说的第一批,第二批就需要动点脑。 可以试试下面的测试数据:4 3...
分类:
其他好文 时间:
2014-08-31 16:59:01
阅读次数:
171
#include
#include
#define maxn 10002
int ans, queue[maxn];
struct Node{
int to, next, val;
} map[maxn << 1];
struct node{
int first, money, indegree;
} head[maxn];
bool topoSort(int n)
{...
分类:
其他好文 时间:
2014-08-02 10:07:43
阅读次数:
196
Reward
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3854 Accepted Submission(s): 1177
Problem Description
Dandelion's uncle i...
分类:
其他好文 时间:
2014-07-31 17:15:47
阅读次数:
223
老板发工资,但是要保证发的工资数满足每个人的期望,比如A期望工资大于B,只需比B多1元钱即可。老板发的最低工资为888元。输出老板最少发的工资总数,若是无法满足大家的期望,则输出-1。...
分类:
其他好文 时间:
2014-07-20 10:35:08
阅读次数:
214
题意不说了,说下思路。
给出的关系是a要求的工资要比b的工资多,由于尽可能的让老板少付钱,那么a的工资就是b的工资+1,可以确定关系为a>b,根据拓扑排序建边的原则是把“小于”关系看成有向边,那么我们可以建边v->u。
#include
#include
#include
#include
#include
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-05-04 00:06:31
阅读次数:
271