网易笔试题分享:奖学金
2017-03-24 13:08
239 查看
小v今年有n门课,每门都有考试,为了拿到奖学金,小v必须让自己的平均成绩至少为avg。每门课由平时成绩和考试成绩组成,满分为r。现在他知道每门课的平时成绩为ai ,若想让这门课的考试成绩多拿一分的话,
小v要花bi 的时间复习,不复习的话当然就是0分。同时我们显然可以发现复习得再多也不会拿到超过满分的分数。
为了拿到奖学金,小v至少要花多少时间复习。
这道题有几个坑,一是当前的成绩已经够拿到奖学金了,而是存储时间的类型要设置为long,int 是不够用的 代码如下,简单的动态规划
思路是先从得到1分的最短时间科目入手
小v要花bi 的时间复习,不复习的话当然就是0分。同时我们显然可以发现复习得再多也不会拿到超过满分的分数。
为了拿到奖学金,小v至少要花多少时间复习。
这道题有几个坑,一是当前的成绩已经够拿到奖学金了,而是存储时间的类型要设置为long,int 是不够用的 代码如下,简单的动态规划
思路是先从得到1分的最短时间科目入手
import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedList; import java.util.Scanner; // 构造比较器 class stu implements Comparable<stu>{ int start; int xiao; @Override public int compareTo(stu s2) { if(this.xiao<s2.xiao) return -1; else if(this.xiao>s2.xiao) return 1; else{ if(this.start<s2.start) return -1; else return 1; } } } public class Main { public static long getMinTime(int n,int r,int avg,LinkedList<stu> set,int score){ int needScore=avg*n; //需要的分数 if(needScore<=score) // 如果当前的分数大于需要的分数,就不用往下了。 return 0; if(avg>r) // 可能有要求平均分大于总分的情况,也不用往下了。 return 0; long time=0; // 需要的时间 Iterator<stu> it=set.iterator(); while(it.hasNext()){ stu s=it.next(); if((score+r-s.start)<=needScore){ time+=(r-s.start)*s.xiao; score+=r-s.start; } else{ time+=(needScore-score)*s.xiao; break; } } return time; } public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); int r=sc.nextInt(); int avg=sc.nextInt(); int score=0; LinkedList<stu> set=new LinkedList<stu>(); for (int i = 0; i < n; i++) { stu s=new stu(); s.start=sc.nextInt(); s.xiao=sc.nextInt(); score+=s.start; set.add(s); } Collections.sort(set); System.out.println(getMinTime(n,r,avg,set,score)); } } }
相关文章推荐
- IBM中国研究院、SAP、网易游戏、IBM2015应届生招聘笔试面试问题分享
- 网易2015实习生笔试题——奖学金
- 名企笔试:2016网易笔试题(奖学金)2017-05-12 算法爱好者
- IBM中国研究院、SAP、网易游戏、IBM2015应届生招聘笔试面试问题分享
- 分享java编程题(二)(网易笔试)
- 网易游戏 从笔试到offer 经验分享
- 网易游戏 从笔试到offer 经验分享——寻找最适合自己的公司和岗位
- 名企笔试:2016网易招聘笔试题(奖学金)
- 网易笔试题 奖学金
- 网易2016软件工程师笔试题-----[编程题] 奖学金(C++实现)
- 2017网易互联网内推笔试题(奖学金问题)
- 分享:某单位Java笔试题(一)
- 网易2017校招内推笔试练习卷编程题1--1019.数字黑洞20
- 2017网易春招笔试 堆砖块
- 网易内推笔试题2017机器视觉算法工程师
- 网易16年研发实习生笔试题 - 比较重量
- 【网易笔试】小易最近在数学课上学习到了集合的概念
- 【在线笔试题解题报告系列】网易2017校招内推笔试之编程题【持续更新】
- 剑指Offer——网易笔试之解救小易——曼哈顿距离的典型应用
- 剑指Offer——网易笔试之不要二——欧式距离的典型应用