(ssl1325)08年东莞特长生 奖金
2018-03-13 17:38
211 查看
2008年东莞特长生
之
奖金
于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。每位员工奖金最少为100元。
以下m行,每行2个整数a,b,表示某个代表认为第a号员工奖金应该比第b号员工高。
1 2
100%的数据满足n<=10000,m<=20000。
这里说明一下此题的死循环:设有4个员工,工资为②>①,③>②,④>③,①>④。如果你在此处不判重,那么这4名员工的工资就会一直+1,形成一个无限循环的环,你的程序就会爆掉(你的公司也会破产的!)
之
奖金
Description
由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。每位员工奖金最少为100元。
Input
两个整数n,m,表示员工总数和代表数;以下m行,每行2个整数a,b,表示某个代表认为第a号员工奖金应该比第b号员工高。
Output
若无法找到合法方案,则输出“-1”;否则输出一个数表示最少总奖金。Sample Input
2 11 2
Sample Output
201Hint
80%的数据满足n<=1000,m<=2000;100%的数据满足n<=10000,m<=20000。
Source
elba题解:
本题的思路是先建立一个邻接表,再用深搜去搜,如果遇到环(死循环)了就退出这里说明一下此题的死循环:设有4个员工,工资为②>①,③>②,④>③,①>④。如果你在此处不判重,那么这4名员工的工资就会一直+1,形成一个无限循环的环,你的程序就会爆掉(你的公司也会破产的!)
var a,b,next:array[0..20000]of longint; f,list:array[0..10000]of longint;//f为每位员工在最低工资(100元)以上,额外的工资 v:array[0..10000]of boolean; n,m,i,x,ans:longint; procedure dfs(n,q:longint); var i,t:longint; begin t:=list ;//t为工资比他高的人数 while t>0 do//只要有人工资比他高 begin if v[a[t]] then//判死循环 begin write(-1); halt; end; if q>f[a[t]] then//如果此人的工资比本应要比他高的人高 begin f[a[t]]:=q;//先保存钱先 v[a[t]]:=true;//拿过钱了 dfs(a[t],q+1);//就让那个本应拿多点钱的人拿多一块,看看行不行 v[a[t]]:=false;//回溯(可以拿更多) end; t:=next[t];//到下一个人,看看有没有要比他多钱 end; end; begin read(n,m); for i:=1 to m do begin read(a[i],b[i]); inc(x);//建立邻接表 next[x]:=list[b[i]];//记录有几个员工比b[i]奖金多 list[b[i]]:=x;//哪个员工比b[i]多奖金多 end; for i:=1 to n do begin fillchar(v,sizeof(v),0);//重置 dfs(i,1);//从每个点出发去搜 end; for i:=1 to n do ans:=ans+f[i]+100;//加100是因为“每位员工奖金最少为100元。” write(ans); end.
相关文章推荐
- (ssl1326)08年东莞特长生 工作
- (ssl1323)08年东莞特长生 聪明的小李
- (ssl1324)08年东莞特长生 吝啬的地主
- 08年东莞特长生 奖金
- 08年东莞特长生 工作
- (ssl1959)2009年东莞市信息学特长生测试题 导游的魔棒
- Machine Schedule ssl 1342/poj 1325 最小覆盖问题
- 2016 东莞信息特长生考试 1 子数整数
- 特长生模拟——09年东莞特长生考试
- (ssl2239)2012年特长生试题一 营救
- 特长生模拟——13年东莞特长生考试
- 【2016东莞信息特长生】子数整数
- 2009东莞特长生 Q1:惊人的记忆力
- 3.31东莞特长生2013
- 2009东莞特长生 Q2:岛屿的缘分
- 2009东莞特长生 Q3:导游的魔棒
- 【2016东莞信息特长生】字串距离
- 东莞举办首届中国ios应用开发大赛,奖金小气了吗?
- 2009东莞特长生 Q4:开发区规划
- SSL-ZYC NOIP