HDOJ(HDU) 2078 复习时间

简介: HDOJ(HDU) 2078 复习时间

Problem Description

为了能过个好年,xhd开始复习了,于是每天晚上背着书往教室跑。xhd复习有个习惯,在复习完一门课后,他总是挑一门更简单的课进行复习,而他复习这门课的效率为两门课的难度差的平方,而复习第一门课的效率为100和这门课的难度差的平方。xhd这学期选了n门课,但是一晚上他最多只能复习m门课,请问他一晚上复习的最高效率值是多少?


Input

输入数据的第一行是一个数据T,表示有T组数据。

每组数据的第一行是两个整数n(1 <= n <= 40),m(1 <= m <= n)。

接着有n行,每行有一个正整数a(1 <= a <= 100),表示这门课的难度值。


Output

对于每组输入数据,输出一个整数,表示最高效率值。


Sample Input

2

2 2

52

25

12 5

89

64

6

43

56

72

92

23

20

22

37

31


Sample Output

5625

8836


理解分析一:

由题意我们很容易了解到 : 前一门课为 N, 后一门课为 M , 则学习 M 课的效率为 ( N - M )2 , 那么学习第一节的效率为

( 100 - N )2 , 有题目我们知道: 下一门需要学习的课比上一次更 简单, 所以 N > M, 那么此时学习的效率为 :

F1 = ( 100 - N )2 + ( N - M )2 = 1002 - 2*100*N + N2 + N2 - 2*N*M + M2 = 1002 + M2 - 2*N*( 100+M-N );

而直接学习最简单的课程的效率为:

F2 = ( 100 - M )2 = 1002 +M2 - 2*100*M

因为 2*N*( 100+M-N ) - 2*100*M = ( N - M ) * ( 200 - 2*N ) ,有上面的分析我们知道 N > M , N < 100 , 于是就有

( N - M ) * ( 200 - 2*N ) > 0 ; 也就是说 F2 > F1 ;

有分析可以看出 , 要想效率最高, 只需要找出简单的课程直接学习就可以了.


理解分析二:

根据公式:(a+b)^2 > a^2 + b^2

a、b表示两次的难度差,所以直接复习最简单的一门课效率最高。

import java.util.Arrays;
import java.util.Scanner;
/**
 * (a+b)^2 > a^2 + b^2
 * a、b表示两次难度差,所以直接复习最简单的一门课效率最高
 * @author 陈浩翔
 * 2016-4-27
 */
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        while(t-->0){
            int n = sc.nextInt();
            int m = sc.nextInt();
            int s[] = new int[n];
            for(int i=0;i<n;i++){
                s[i] = sc.nextInt();
            }
            Arrays.sort(s);
            System.out.println((100-s[0])*(100-s[0]));
        }
    }
}
目录
相关文章
|
人工智能 供应链 Linux
《国产服务器操作系统发展报告(2023)》重磅发布
根据近期信通院面向用户群体的调研显示,国产服务器操作系统逐渐成为各行业替换首选,其中,龙蜥操作系统位列用户意愿迁移系统的首位。
|
消息中间件
rabbitmq安装之后无法访问15672
rabbitmq安装之后无法访问15672
631 0
|
12月前
|
消息中间件 并行计算 安全
进程、线程、协程
【10月更文挑战第16天】进程、线程和协程是计算机程序执行的三种基本形式。进程是操作系统资源分配和调度的基本单位,具有独立的内存空间,稳定性高但资源消耗大。线程是进程内的执行单元,共享内存,轻量级且并发性好,但同步复杂。协程是用户态的轻量级调度单位,适用于高并发和IO密集型任务,资源消耗最小,但不支持多核并行。
213 1
|
6月前
|
机器学习/深度学习 人工智能 边缘计算
AI驱动的开源治理——社会综合治理智慧化系统的技术突破
通过AI识别与智能监控精准捕捉不文明行为,生成证据链并分级预警,识别精度达98%;跨部门联动平台打破信息孤岛,实现多部门高效协作,事件处置时间缩短至5分钟;多场景适配的开源架构支持景区、校园等多样化需求,灵活部署边缘计算优化性能。试点成效显著,大幅提升治理效能。
176 14
|
7月前
|
移动开发 前端开发 开发者
React 音频播放控制组件 Audio Controls
本文介绍了如何使用React构建音频播放控制组件,涵盖HTML5 `&lt;audio&gt;`标签和React组件化思想的基础知识。针对常见问题如播放状态管理、进度条更新不准确及跨浏览器兼容性,提供了详细的解决方案和代码示例。同时,还总结了易错点及避免方法,如确保音频加载完成再操作、处理音频错误等,帮助开发者实现稳定且功能强大的音频播放器。
300 11
|
11月前
|
UED
视频格式转换与DRM解除
随着流媒体平台的普及,用户对视频下载和转换工具的需求不断增加。本文介绍了几款优秀工具,如CleverGet、PlayOn Cloud、CocCut、StreamGaGa和PlayOn Desktop,帮助用户更好地下载、转换和管理视频内容。这些工具不仅提升了视频获取的便利性,还提供了多种选择,满足不同需求。使用时请确保合法合规。
|
监控 供应链
医院管理信息系统源代码,中小医院云HIS系统源码
HIS系统是医院信息化的核心,涵盖门诊、住院、药房、财务等模块。其功能包括患者管理、电子病历、医生工作站、护士工作站及临床诊疗等,实现从挂号收费到住院结算全流程自动化管理,提升医疗服务效率与质量。该系统通过综合管理与统计分析,优化医院运营。
445 12
|
Java 数据中心 Sentinel
spring boot sentinel 的使用
要实现Spring Boot集成Sentinel的熔断降级,需引入Sentinel依赖并配置Dashboard地址;使用`@SentinelResource`注解定义受保护资源及blockHandler处理降级逻辑;通过Sentinel Dashboard配置熔断规则,如异常比例或响应时间。启动应用后,测试熔断功能,确保Sentinel正常工作。建议动态调整规则以提升系统稳定性。
703 3
|
前端开发 JavaScript 数据管理
前端框架对比:React、Vue与Angular
【7月更文挑战第2天】React、Vue和Angular是前端三大框架,各有特色。React以组件化和虚拟DOM著称,适合大型SPA;Vue轻量且易用,适用于快速开发;Angular是全面解决方案,适合复杂应用,但学习成本高。选择取决于项目需求和团队技能。