博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
六省联考2017 题解
阅读量:5020 次
发布时间:2019-06-12

本文共 847 字,大约阅读时间需要 2 分钟。

day1

T1 期末考试

题意

\(n\) 位同学,每位同学都参加了全部的 \(m\) 门课程的期末考试,都在焦急的等待成绩的公布。

\(i\) 位同学希望在第 \(t_i\) 天或之前得知所有课程的成绩。如果在第 \(t_i\) 天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程公布成绩,每等待一天就会产生 \(C\) 不愉快度。

对于第 \(i\) 门课程,按照原本的计划,会在第 \(b_i\) 天公布成绩。

有如下两种操作可以调整公布成绩的时间:

将负责课程 \(X\) 的部分老师调整到课程 \(Y\),调整之后公布课程 \(X\) 成绩的时间推迟一天,公布课程 \(Y\) 成绩的时间提前一天;每次操作产生 \(A\) 不愉快度。

增加一部分老师负责学科 \(Z\),这将导致学科 \(Z\) 的出成绩时间提前一天;每次操作产生 \(B\) 不愉快度。

上面两种操作中的参数 \(X,Y,Z\) 均可任意指定,每种操作均可以执行多次,每次执行时都可以重新指定参数。

现在希望你通过合理的操作,使得最后总的不愉快度之和最小,输出最小的不愉快度之和即可。

样例输入与输出

input

100 100 24 55 1 2 31 1 2 3 3

output

6

题解

十分容易发现,假若最后结束的课程的结束日期确定,那么学生等待所产生的代价是确定的,且可以O(1)计算

那么,枚举该结束日期,我们只要能够O(log)地计算出使得所有课程均在这一天及其之前结束所需要的代价就可以了

这同样并不困难。考虑两种操作,发现:如果 \(A > B\) ,那么,第一种操作完全不需要,只用第二种操作,代价很好算

假如 \(A < B\) ,那么两种操作显然优先上第一种,我们可以快速地计算出最多使用多少次第一种操作,代价同样很好算

那么,这道题就完美地解决了 φ(≧ω≦*)♪

转载于:https://www.cnblogs.com/nflslzt/p/8724447.html

你可能感兴趣的文章
《Ext JS模板与组件基本知识框架图----模板》
查看>>
txmpp
查看>>
微信开发时调用jssdk,在安卓设备中成功调用;在ios设备中返回错误消息:config fail,无其他具体错误消息,且接口权限显示获取ok,无法调用...
查看>>
【Github教程】史上最全github使用方法:github入门到精通
查看>>
抽象工厂模式(Abstract Factory)
查看>>
luogu1373 小a和uim之大逃离 (dp)
查看>>
Redis的Pub/Sub客户端实现
查看>>
SQL日常问题和技巧——持续更新
查看>>
springMVC入门(一)------springMVC基本概念与安装
查看>>
Sam做题记录
查看>>
[bzoj] 2453 维护数列 || 单点修改分块
查看>>
IIS版本变迁
查看>>
使用Gzip压缩提升WEB服务器性能
查看>>
BZOJ3884: 上帝与集合的正确用法 拓展欧拉定理
查看>>
mybatis09--自连接一对多查询
查看>>
myeclipse10添加jQuery自动提示的方法
查看>>
【eclipse jar包】在编写java代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可。...
查看>>
视频监控 封装[PlayCtrl.dll]的API
查看>>
软件工程APP进度更新
查看>>
Python 使用正则替换 re.sub
查看>>