博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-2647 Reward(拓扑排序)
阅读量:5968 次
发布时间:2019-06-19

本文共 2113 字,大约阅读时间需要 7 分钟。

Reward

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 9799    Accepted Submission(s): 3131

Problem Description
Dandelion's uncle is a boss of a factory. As the spring festival is coming , he wants to distribute rewards to his workers. Now he has a trouble about how to distribute the rewards.
The workers will compare their rewards ,and some one may have demands of the distributing of rewards ,just like a's reward should more than b's.Dandelion's unclue wants to fulfill all the demands, of course ,he wants to use the least money.Every work's reward will be at least 888 , because it's a lucky number.
 

 

Input
One line with two integers n and m ,stands for the number of works and the number of demands .(n<=10000,m<=20000)
then m lines ,each line contains two integers a and b ,stands for a's reward should be more than b's.
 

 

Output
For every case ,print the least money dandelion 's uncle needs to distribute .If it's impossible to fulfill all the works' demands ,print -1.
 

 

Sample Input
2 1
1 2
 
2 2
1 2
2 1
 

 

Sample Output
1777
-1
 

 

Author
dandelion
#include
#include
#include
#include
#include
using namespace std;const int N = 10000 + 15;int n, m, in[N], val[N];vector
edge[N];void Solve_question(){ int ans = 0, cnt = 0; queue
Q; for(int i = 1; i <= n; i++) if(!in[i]) { Q.push(i); val[i] = 888; } while(!Q.empty()){ int u = Q.front(); Q.pop(); cnt++; for(int i = 0; i < (int)edge[u].size(); i++){ int v = edge[u][i]; if(--in[v] == 0){ Q.push(v); val[v] = val[u] + 1; } } } if(cnt < n) puts("-1"); else{ for(int i = 1; i <= n; i++) ans += val[i]; printf("%d\n", ans); }}void Input_data(){ for(int i = 1; i <= n; i++) edge[i].clear(), val[i] = in[i] = 0; int u, v; for(int i = 1; i <= m; i++){ scanf("%d %d", &u, &v); in[u]++; edge[v].push_back(u); }}int main(){ while(scanf("%d %d", &n, &m) == 2){ Input_data(); Solve_question(); }}

 

转载于:https://www.cnblogs.com/Pretty9/p/7413231.html

你可能感兴趣的文章
ant扩展应用的安装
查看>>
CentOS上使用libtld
查看>>
idea报错集锦
查看>>
MongoDB的安装和使用
查看>>
fix不抖动ie6
查看>>
SVN提交代码时全选文件
查看>>
Frament填坑
查看>>
使用spark-sql-perf评测spark 2.0
查看>>
Android下 scrollview的滚动停止事件的监听方法
查看>>
数据结构与算法之KMP算法02
查看>>
×××安全协议之IPsec
查看>>
用Unity3D的50个技巧:Unity3D最佳实践
查看>>
记录:C#编程中的字符串
查看>>
NEO从源码分析看NEOVM
查看>>
我的友情链接
查看>>
Btrfs入门(一)
查看>>
java中的匿名内部类总结
查看>>
多线程(一、线程安全案例)
查看>>
mysql之DDL操作--数据库
查看>>
java json格式的转换和读取
查看>>