https://www.lydsy.com/JudgeOnline/problem.php?id=4868

显然我们只关注最后出分的学科。

刚开始想的是dp,然而不知道如何记录状态。

突然就想到了正解。

首先对于每一个最后出分的日期,所有的不愉快度一定来自两个方面:

$n$个同学的期待,这个作前缀和可以$O(1)$统计。

$m$个学科调派老师,这个作前缀和也可以$O(1)$统计。

所以$O(max(t_i))$解决了这道题。???

正解当然不是上面的暴力而是三分

设$f(x)$表示最终结束时间为$x$时,来自同学期待的不愉快度。

$g(x)$表示最终结束时间为$x$时,来自调整老师的不愉快度。

$F(x)=f(x)+g(x)$表示答案,$F(x)$是单峰的。

证明:

显然$f(x)$,$g(x)$两个函数都是单调的。

但是仅仅单调还不够,两个函数一定是斜率不下降的。

也就是说,我们对两个函数求导函数,仍然是单调的。

并且,两个导函数都是单调不下降的。

其中$f'(x)$的初始值为正,$g'(x)$的初始值为负。

故$F'(x)=f'(x)+g'(x)$是单调不下降,且过原点的。

所以$F(x)$是单峰的。

然而三分似乎是不对的。

$F(x)$并不严格单调。

当三分的左右$mid$端点在一段函数值相等的区间,可能会导致区间确定的错误。

所以可能正解反而是暴力?

bzoj4868 期末考试 题解的更多相关文章

  1. BZOJ4868:[SHOI2017]期末考试——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=4868 题目复制于洛谷:https://www.luogu.org/problemnew/show/P ...

  2. 【BZOJ4868】[六省联考2017]期末考试(贪心)

    [BZOJ4868][六省联考2017]期末考试(贪心) 题面 BZOJ 洛谷 题解 显然最终的答案之和最后一个公布成绩的课程相关. 枚举最后一天的日期,那么维护一下前面有多少天可以向后移,后面总共需 ...

  3. 【bzoj4868】[Shoi2017]期末考试 前缀和+暴力

    题目描述 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待 ...

  4. 【BZOJ4868】期末考试(整数三分)

    题意: 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天 或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待 ...

  5. bzoj4868: [Shoi2017]期末考试(三分法)

    4868: [Shoi2017]期末考试 题目:传送门 题解: Get到一个新姿势...三分法 一开始百度百科的时候下了一跳...中国...的根??? 学懂了之后其实运用起来就根二分差不多啊,不过证明 ...

  6. [bzoj4868][Shoi2017]期末考试

    来自FallDream 的博客,未经允许,请勿转载,谢谢. 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天或之前得知所.有.课程的成绩.如果在 ...

  7. [BZOJ4868][六省联考2017]期末考试(三分)

    4868: [Shoi2017]期末考试 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 964  Solved: 439[Submit][Status ...

  8. 【BZOJ4868】期末考试 [三分][贪心]

    期末考试 Time Limit: 20 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description Input Output Samp ...

  9. [luogu] P3745 [六省联考2017]期末考试 (贪心)

    P3745 [六省联考2017]期末考试 题目描述 有 \(n\) 位同学,每位同学都参加了全部的 \(m\) 门课程的期末考试,都在焦急的等待成绩的公布. 第 \(i\) 位同学希望在第 \(t_i ...

随机推荐

  1. Java之路---Day18(List集合)

    2019-11-05-23:03:28 List集合: java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,习惯性地会将实现了List 接口的对象称为Lis ...

  2. Java自学-操作符 算数操作符

    Java的算数操作符 算数操作符 基本的有: + - * / % 自增 自减 ++ -- 基本的加 减 乘 除: public class HelloWorld { public static voi ...

  3. Scheduling Tasks

    官方文档 https://spring.io/guides/gs/scheduling-tasks/ 官方文档详细介绍了@Scheduled中fixedRate,fixedDelay,cron的用法 ...

  4. vue组件4 利用slot将内容传递给组件

    除了将数据作为prop传入到组件中,vue也允许传入HTML 父组件中的子组件:<custom-button>点我<custom-button/> custom-button子 ...

  5. 基于elementUI创建的vue项目

    这周对公司的内容使用vue进行重构,所以记录一下开始项目的过程 下载elementUI: 项目文件夹中在命令行中输入:npm install elementui -s 下载完成后在 main.js 中 ...

  6. Qt使用QPainter绘制矢量图并保存为svg文件

    位图和矢量图: Bitmap: Usually a larger file size Cannot be enlarged into a higher resolution as the image ...

  7. windows 2003 windows 2008 windows 2012 导出域控hash的方法

    quarkspwdump作者介绍的用法: 1. Windows 2008       Microsoft recently implements VSS (Volume Shadow Copy Ser ...

  8. 解锁 redis 锁的正确姿势

    redis 是 php 的好朋友,在 php 写业务过程中,有时候会使用到锁的概念,同时只能有一个人可以操作某个行为.这个时候我们就要用到锁.锁的方式有好几种,php 不能在内存中用锁,不能使用 zo ...

  9. H3C 无线交换机的数据转发原理

  10. linux设备驱动程序——将驱动程序编译进内核

    linux驱动程序--将驱动程序编译进内核 模块的加载 通常来说,在驱动模块的开发阶段,一般是将模块编译成.ko文件,再使用 sudo insmod module.ko 或者 depmod -a mo ...