HDU——2647 Reward
Reward
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9800 Accepted Submission(s): 3131
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.
then m lines ,each line contains two integers a and b ,stands for a's reward should be more than b's.
问题描述
蒲公英的叔叔是工厂的老板。 随着春节来临,他想向他的工人分发奖励。 现在他有分享奖励的麻烦。
工作人员会比较他们的回报,有的可能会有分配奖励的要求,就像一个奖励应该超过b's.蒲公英的无礼想要完成所有的要求,当然,他想使用最少的钱。每个工作 奖励至少是888,因为这是一个幸运数字。
#include<queue> #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define N 20100 #define money 888 using namespace std; queue<int>q; long long anss; int n,m,x,y,s,in[N],tot,sum,head[N],ans[N]; int read() {int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}return x*f; } struct Edge {int from,to,next; }edge[N]; int add(int x,int y) {tot++;edge[tot].to=y;edge[tot].next=head[x];head[x]=tot; } void begin() {s=0,sum=0,tot=0;anss=0;memset(in,0,sizeof(in));memset(ans,0,sizeof(ans));memset(head,0,sizeof(head));memset(edge,0,sizeof(edge)); } int main() {while(scanf("%d%d",&n,&m)!=EOF){begin();for(int i=1;i<=m;i++){x=read(),y=read();add(y,x),in[x]++;}for(int i=1;i<=n;i++)if(in[i]==0) q.push(i),ans[i]=0;while(!q.empty()){x=q.front(),q.pop(),sum++;for(int i=head[x];i;i=edge[i].next){int t=edge[i].to;in[t]--;if(in[t]==0) q.push(t),ans[t]=ans[x]+1;}}if(sum!=n) printf("-1\n");else {for(int i=1;i<=n;i++)anss+=money+ans[i];printf("%lld\n",anss);} }return 0; }
转载于:https://www.cnblogs.com/z360/p/7420457.html
HDU——2647 Reward相关推荐
- HDU 2647 Reward (拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 题意是给你n点m条有向边,叶子点(出度为0)上的值为888,父亲点为888+1,依次计算... ...
- HDU 2647 Reward 拓扑排序
http://acm.hdu.edu.cn/showproblem.php?pid=2647 题意: 输入N和M代表N个人和M组数据,M组数据中的A和B代表A的工资要比B的工资高,底薪是(888元), ...
- Hdu - 2647 - Reward
上题目 Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 2647 拓扑排序
题意:每个人的工资至少888,然后有m个条件,前者比后者要多.求最少工资. 分析: 最开始的开邻接矩阵的肯定超时,如果dfs,会出现由于刚开始不是从入度为0的点出发,后期修改不了.比较麻烦. 正确方式 ...
- 图论复习(各类习题)
可以结合这篇博客进行复习:http://www.cnblogs.com/z360/p/7363034.html 一.强连通分量.缩点 习题: 洛谷--P2746 [USACO5.3]校园网Networ ...
- ACM 图论入门题(附代码解释)
目录 HDU 1869 六度分离 HDU 1874 畅通工程续 (最短路) HDU 3339 In Action (最短路+01背包) HDU 1162 Eddy's picture(prime算法) ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- 【HDOJ图论题集】【转】
1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...
- 一系列图论问题[转]
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- 2019 HZNU Winter Training Day 14 Comprehensive Training
A - Choosing Capital for Treeland CodeForces - 219D 题意:有一颗单向边的树,要选取一个结点作为首都.要求是这个结点到其它结点,总共需要翻转的路径数量 ...
最新文章
- jforum中对各种servlet对象都进行了封装
- fMRI在认知心理学上的研究
- 协方差公式性质证明过程_论文推荐 | 刘志平:等价条件平差模型的方差-协方差分量最小二乘估计方法...
- 前端学习(2096):作业得回顾和完成
- 【论文解读】IJCAI2019: 面向中文NER 基于lexicon rethinking的CNN模型
- HihoCoder-1523(思维)
- 巧妙突破大容量邮箱附件大小限制
- 小甲鱼Python课后习题028
- html翻译插件,翻译插件:ImTranslator
- 谈谈创业这点事(4)
- Android 补间动画之平移动画TranslateAnimation
- GPU共享内存:pycuda使用教程
- Java实现 蓝桥杯VIP 算法提高 盾神与砝码称重
- MMDetection框架入门教程(完全版)
- 访客模式 无痕模式 区别_模式:访客模式
- linux密码配置文件详解,用户配置文件与密码配置文件
- 企业WAP建站的10个理由
- 关于options请求的一点理解
- 高并发秒杀系统方案的优化
- java字符转成ncr_NCR字符编码(形如xx)转换为汉字 in JAVA
热门文章
- 基于python-实现仿天眼查-企查查-完整源码
- 中国矿业大学计算机学院推免,j机电学院2008届毕业生推免工作顺利完成
- 怎么对文件夹名称进行编号排序
- stony大学计算机科学找工作,美国STEM专业毕业生薪资最高的院校有哪些?
- 阿里巴巴 29 个屌炸天的开源项目
- 吉林大学操作系统上机(实验二:处理机调度——实时调度算法EDF和RMS)
- 福建将全面实现各市县政府机关软件正版化
- 阿尔卡特交换机配置_ALCATEL-交换机配置手册(中文).doc
- IOS开发学习基于swift语言
- 【机械制造基础部分(京玉海第二版)部分思考题】