考场上xjb三分过掉了。

然后$sdfzyhx$、$silvernebula$ $O(n)$虐掉了。

我还是太菜了

#include <cstdio>
#include <cmath>
#include <queue>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define F(i,j,k) for (int i=j;i<=k;++i)
#define D(i,j,k) for (int i=j;i>=k;--i)
#define ll long long
#define inf 10000000LL
#define llinf 10000000000000000LL
#define maxn 100005 void Finout()
{
freopen("exam.in","r",stdin);
freopen("exam.out","w",stdout);
} int n,m,t[maxn],b[maxn];
ll A,B,C; namespace Subtask1{
ll cal(int mid)
{
ll ret=0,cnt0=0,cnt1=0;
F(i,1,n) ret+=max((mid-t[i])*C,0LL);
F(i,1,m)
{
if (b[i]<=mid) cnt0+=mid-b[i];
else cnt1+=b[i]-mid;
}
if (A>=B) ret+=cnt1*B;
else
{
if (cnt0>=cnt1) ret+=cnt1*A;
else ret+=cnt0*A+(cnt1-cnt0)*B;
}
return ret;
}
void solve()
{
int l=0,r=0;
F(i,1,m) r=max(r,b[i]);
while (r-l>=4)
{
int m1=(l+r)/2,m2=(l+r)/2+1;
if (cal(m1)>cal(m2)) l=m1;
else r=m2;
}
ll ans=llinf; F(i,l,r) ans=min(ans,cal(i));
printf("%lld\n",ans);
}
} namespace Subtask2{
void solve()
{
ll ret=0,cnt0=0,cnt1=0,mini=llinf;
F(i,1,n) mini=min(mini,1LL*t[i]);
F(i,1,m)
{
if (b[i]<=mini) cnt0+=mini-b[i];
else cnt1+=b[i]-mini;
}
if (A>=B) ret+=cnt1*B;
else
{
if (cnt0>=cnt1) ret+=cnt1*A;
else ret+=cnt0*A+(cnt1-cnt0)*B;
}
printf("%lld\n",ret);
}
} int main()
{
scanf("%lld%lld%lld",&A,&B,&C);
scanf("%d%d",&n,&m);
F(i,1,n) scanf("%d",&t[i]);
F(i,1,m) scanf("%d",&b[i]);
if (C>=inf) Subtask2::solve();
else Subtask1::solve();
fclose(stdin);
fclose(stdout);
}

  

BZOJ 4868 [Shoi2017]期末考试 ——三分 枚举的更多相关文章

  1. bzoj 4868: [Shoi2017]期末考试

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

  2. BZOJ-1- 4868: [Shoi2017]期末考试-三分

    三分出成绩时间,假设当前出成绩最优,那么提前就会调增老师,增加不愉快度多于少等待的:如果延迟时间. 那么等待更久,增加的不愉快度也将多余少调增剩省下的. 于是:对于当前点,两边都是有单调性的. 就是说 ...

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

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

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

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

  5. NC20439 [SHOI2017]期末考试

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

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

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

  7. [SHOI2017]期末考试

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

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

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

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

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

随机推荐

  1. polygon 画图

    cityscape数据集,我现在想根据json文件中的polygon画出整个road的区域,这是运行的脚本.这个文件必须使用coco的pythonAPI的包,把这个脚本放在pythonAPI文件夹下就 ...

  2. C#语言命名的9种规范

    下面介绍C#语言命名的9种规范: a) 类 [规则1-1]使用Pascal规则命名类名,即首字母要大写. [规则1-2]使用能够反映类功能的名词或名词短语命名类. [规则1-3]不要使用“I”.“C” ...

  3. Electron的介绍

    1.1 Electron是什么? 引用官网的一句话: Build cross platform desktop apps with JavaScript, HTML, and CSS 1.2 诞生 技 ...

  4. 前端开发面试题之JavaScript(转自公众号)(1)

    js基本数据类型:Undefine Number Null Boolean String; js内置对象:数据封装类对象:object.Array.Boolean.String: 其他:Functio ...

  5. [图文] Fedora 28 使用 Virt-Manager 创建 KVM 虚拟机以及 配置 KVM 虚拟机

    实验说明: 往后的许多实验都将以Linux平台下的 KVM虚拟机为主,所以不可少的就是 Virt-Manager 虚拟机管理器. 本章将对如何安装和使用Virt-Manager管理器进行讲解,并且会对 ...

  6. 使用linux安装gitolite管理git

    系统:centos7 服务器:阿里云 一.前期准备 1.安装git yum install git 2.安装perl yum install perl 3.安装openssh yum install ...

  7. Optimization & Map

  8. Thinkphp5 同时连接两个库

    新建api/user.php <?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/8/25 * Time: 1 ...

  9. STM32CUBEMX入门学习笔记3:HAL库以及STM32CUBE相关资料

    微雪课堂:http://www.waveshare.net/study/article-629-1.html 之前的正点原子的例程资料 硬石科技stm32cube: 链接:https://pan.ba ...

  10. POJ:2955-Brackets(经典:括号匹配)

    传送门:http://poj.org/problem?id=2955 Brackets Time Limit: 1000MS Memory Limit: 65536K Description We g ...