题目链接

  我是怎么把“期末考试”在本地写成“假期计划”的

  qwq????

  本题把学生和卷子都排个序,按出成绩最晚时间三分。

  三分之后可以O(n)的时间统计答案,因为修改卷子出成绩的时间可以贪心计划。

  这里着重了解一下为什么可以三分。

  我们可以发现随着出成绩的时间推迟,学生的不偷税愉悦度肯定是越来越大的,换句话说这玩意单调递增。

  然而老师的不偷税度一定是越来越小的,换句话说这玩意单调递减。

  所以说这俩玩意加起来肯定跟二次函数长得特像。

  就可以三分啦。

  然而三分是用于实数定义域内的,我们这是整数怎么办?

  所以说我们可以三分取得一个较小的区间(我这里定的区间大小=8)

  然后对这个区间每一个值都求一遍求解就好啦

  

#include<cstdio>
#include<cstdlib>
#include<cctype>
#include<cstring>
#include<algorithm>
#define maxn 200020
using namespace std;
inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} long long a,b,c;
long long n,m;
long long q[maxn];
long long d[maxn]; double calc(long long x){
long long rest=,need=;
for(long long i=;i<=m;++i)
if(q[i]<=x) rest+=x-q[i];
else need+=q[i]-x;
double ans=;
if(a<b){
if(need<=rest) ans=a*need;
else ans=a*rest+b*(need-rest);
}
else ans=b*need;
for(long long i=;i<=n;++i)
if(d[i]<x){
//if(c==1e16) return 1e18;
ans+=(double)(x-d[i])*c;
}
return ans;
} int main(){
a=read(),b=read(),c=read();
n=read(),m=read();
for(long long i=;i<=n;++i) d[i]=read();
for(long long i=;i<=m;++i) q[i]=read();
sort(d+,d+n+);
sort(q+,q+m+);
long long l=d[],r=d[n];
while(r-l>){
long long mid=l+(r-l)/;
long long mmid=l+(r-l)*/;
if(calc(mid)<=calc(mmid)) r=mmid;
else l=mid;
}
long long ret=l;
for(long long i=l;i<=r;++i)
if(calc(i)<calc(ret)) ret=i;
printf("%.0lf",calc(ret));
return ;
}

最新文章

  1. Python 爬虫5——爬取并下载网页指定规格的图片
  2. 9月11日上午HTML有序列表、无序列表、网页的格式和布局
  3. goldengate studio 12.2.1.2.6发布
  4. Oracel查询根据部分字段去重复
  5. R语言 推荐算法 recommenderlab包
  6. 跟着鸟哥学Linux系列笔记3-第11章BASH学习
  7. 以对象的方式来访问xml数据表(三)
  8. WebForm页面生命周期及asp.net运行机制
  9. 使用「max-height」实现自适应高度
  10. 建立docker私有hub
  11. pyqt QTimer,QThread例子学习
  12. RHEL5.8安装Sybase 15.7_x86_64
  13. 关于SubclassWindow()和SubclassDlgItem
  14. PHP中定义常量define与const
  15. Machine-learning of Andrew Ng(Stanford University)
  16. 返回到前台的String出现乱码问题
  17. Weblogic 12c 负载均衡和session复制
  18. 利用openssl管理证书及SSL编程第1部分: openssl证书管理
  19. 贝叶斯深度学习(bayesian deep learning)
  20. 安卓学习第一节--环境搭建及Android Studio 安装

热门文章

  1. python基础教程总结14——测试
  2. Java和ABAP中的几种引用类型的分析和比较
  3. javascript报错:ReferenceError: $ is not defined解决办法
  4. 2018.3.16 Ubuntu 解决中文乱码问题
  5. thinkphp 为什么访问路径错误,还可以访问
  6. lua在linxu和windows系统下的遍历目录的方法
  7. iOS开发之蓝牙业务封装
  8. git 指令记录
  9. Github使用技巧总结
  10. 转 Hystrix入门指南 Introduction