CS大战
来源:互联网 发布:html源码怎么用 编辑:程序博客网 时间:2024/04/30 15:58
【题目描述】
暑假开始了,信息学小组的同学都很兴奋,不仅因为暑假可以有整段的时间用来学习信息学,还因为信息学小组会在暑假举办一场真人CS大赛。
我们的游戏当然比较具有挑战力,为了能够让孩子们能够放松一下,兼代小小的抒发一下对辅导老师的热爱之情。所以在CS大战之前,老师总会和学生们做一个小小的“较量”,作为学生们开始比赛的开场。在这个环节中只有老师是“警察”,而所有的信息学队员都是“匪”。当然,老师自然为了能够准备好比赛,已经把自己练成了神射手,而且每射击一枪,总会花费1秒钟,而且百发百中,“枪枪爆头”。
当然,一个老师面对这么多的同学们,自然有些困难。所以,在这个环节中,我们都对老师有一定照顾,就是:只有老师有枪,而学生们没有,而且学生必须从老师面前的唯一一条通道逃跑(好惨啊)。当然,如果学生们一个一个跳出来都会被老师挨个干掉(因为老师是神枪手嘛)。所以,孩子们为了能够还有幸存者能够“生还”。准备同时出现在老师面前。以求能够有些侥幸逃跑出来的……
而每个学生通过通道的时间不同(跑的不一样快嘛)。而且,老师给每一个学生都赋予了一个期望值(期望干掉他的值,当然肯定是根据平时每个人的表现决定的)。老师通过平时对学生的了解,事先计算出了,每个学生在通道里待的时间(以秒为单位)和每个学生的期望值。但是,老师还是给了你一个可以不参加这个游戏的机会,就是,你需要根据老师提供给你的这些数据,计算出老师能够射得的最大期望值。好了,开始了,如果不想被“爆头”,就开始行动吧。
【输入格式】
输入数据第一行是一个整数n(n <= 1000),代表有n个学生要参加游戏。第二行是n个正整数,代表每个学生在通道里待的时间(两个数间用1个空格隔开);第三行,也有n个整数,代表对应第二行每个学生老师给他们赋予的期望值x( x < 1000)。
【输出格式】
输出中只包含一个数据,即老师可以射得的最大期望值。
【样例输入】
5
1 2 5 3 3
2 3 2 4 3
【样例输出】
12
【分析】
贪心,依次枚举希望值大的学生,能打就打。
var t,f:array[0..1001]of longint; i,j,n,fi,h,p,s:longint;begin readln(n); for i:=1 to n do read(t[i]); for i:=1 to n do read(f[i]); h:=-1; for i:=1 to n do if h<t[i] then h:=t[i]; s:=0; for j:=h downto 1 do //如果写for j:=1 to h do会错呦 begin fi:=-maxlongint; for i:=1 to n do if (f[i]>fi)and(t[i]>=j) then begin fi:=f[i]; p:=i; end; s:=s+f[p]; f[p]:=0; end; write(s);end.
- CS大战
- CS..........................
- cs
- cs
- cs
- Cs
- cs
- cs
- cs
- CS
- cs
- cs,
- cs
- cs
- cs
- cs
- cs
- cs
- class.getResource和class.getClassLoader().getResource()路径对比
- 小知识应用实例
- Source Not Found Eclipse源码反编译
- Zynq-Linux移植学习笔记之一-入门
- 【动态规划】Order
- CS大战
- JavaMail
- SQL语句优化技巧
- Android开发——四大组件Service初体验
- VS2010进行远程调试方法总结
- CSS3动画效果animation
- Python魔法方法--属性
- leetcode--Lowest Common Ancestor of a Binary Search Tree
- VMware 设备VMnet0 上的网桥当前未运行。