BZOJ-1- 4868: [Shoi2017]期末考试-三分
三分出成绩时间,假设当前出成绩最优,那么提前就会调增老师,增加不愉快度多于少等待的;如果延迟时间。
那么等待更久,增加的不愉快度也将多余少调增剩省下的。 于是:对于当前点,两边都是有单调性的。
就是说不愉快度随出成绩时间呈单峰函数(这里开口向上),
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define maxn 123456
ll A,B,C,n,m,a[maxn];
ll b[maxn],l,r,lm,rm,ans;
ll ok(ll x)
{
ll sum=0;
for(int i=1; i<=n; i++)
if(a[i]<x)sum+=(x-a[i])*C;
if(A>B)
{
for(int i=1; i<=m; i++)
if(b[i]>x)sum+=(b[i]-x)*B;
}
else
{
ll s1=0,s2=0;
for(int i=1; i<=m; i++)
{
if(b[i]<x)s1+=x-b[i];
if(b[i]>x)s2+=b[i]-x;
}
if(s2<=s1)sum+=s2*A;
else sum+=s1*A+(s2-s1)*B;
}
return sum;
}
int main()
{
scanf("%lld%lld%lld",&A,&B,&C);
scanf("%lld%lld",&n,&m);
for(int i=1; i<=n; i++)
scanf("%lld",&a[i]);
for(int i=1; i<=m; i++)
scanf("%lld",&b[i]);
sort(a+1,a+1+n);
sort(b+1,b+1+m);
if(C==1e16)
printf("%lld\n",ok(a[1]));
else
{
l=0,r=111111;
while(l+2<r)
{
lm=l+(r-l+1)/3;
rm=r-(r-l+1)/3;
if(ok(lm)<ok(rm))
r=rm;
else l=lm;
}
ans=min(min(ok(l),ok(l+1)),ok(l+2));
printf("%lld\n",ans);
}
return 0;
}
BZOJ-1- 4868: [Shoi2017]期末考试-三分的更多相关文章
- BZOJ 4868 [Shoi2017]期末考试 ——三分 枚举
考场上xjb三分过掉了. 然后$sdfzyhx$.$silvernebula$ $O(n)$虐掉了. 我还是太菜了 #include <cstdio> #include <cmath ...
- bzoj 4868: [Shoi2017]期末考试
Description 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天 或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有 ...
- [BZOJ4868][六省联考2017]期末考试(三分)
4868: [Shoi2017]期末考试 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 964 Solved: 439[Submit][Status ...
- bzoj4868: [Shoi2017]期末考试(三分法)
4868: [Shoi2017]期末考试 题目:传送门 题解: Get到一个新姿势...三分法 一开始百度百科的时候下了一跳...中国...的根??? 学懂了之后其实运用起来就根二分差不多啊,不过证明 ...
- NC20439 [SHOI2017]期末考试
NC20439 [SHOI2017]期末考试 题目 题目描述 有 \(n\) 位同学,每位同学都参加了全部的 \(m\) 门课程的期末考试,都在焦急的等待成绩的公布.第 \(i\) 位同学希望在第 \ ...
- BZOJ4868:[SHOI2017]期末考试——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=4868 题目复制于洛谷:https://www.luogu.org/problemnew/show/P ...
- [bzoj4868][Shoi2017]期末考试
来自FallDream 的博客,未经允许,请勿转载,谢谢. 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天或之前得知所.有.课程的成绩.如果在 ...
- 【BZOJ4868】期末考试 [三分][贪心]
期末考试 Time Limit: 20 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description Input Output Samp ...
- [SHOI2017]期末考试
题目描述 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布. 第i位同学希望在第ti天或之前得知所有课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最 ...
随机推荐
- SpringBoot多环境区分
1.修改application.yml配置文件 spring: profiles: active: cppdy datasource: driver-class-name: com.mysql.jdb ...
- dubbo源码之服务发布与注册
服务端发布流程: dubbo 是基于 spring 配置来实现服务的发布的,对于dubbo 配置文件中看到的<dubbo:service>等标签都是服务发布的重要配置 ,对于这些提供可配置 ...
- 动态获取后台传过来的值作为select选项
问题描述:点击左侧菜单项,进入对应的具体页面a.html,页面上方有个select框,点击框后,会浮现选择项. 解决思路:对左侧菜单项添加一个onclick事件,进入后台做具体的查询,将查询到的lis ...
- 网络编程—udp
一.ip地址 1. 什么是地址 地址就是用来标记地点的 2. ip地址的作用 ip地址:用来在网络中标记一台电脑,比如192.168.1.1:在本地局域网上是唯一的. 3. ip地址的分类 每一个IP ...
- 将labelme 生成的.json文件进行可视化的代码+label.png 对比度处理的matlab代码
labelme_to_dataset 指令的代码实现: show.py文件 #!E:\Anaconda3\python.exe import argparse import json import o ...
- Java+selenium之WebDriver的抛出异常分析(七)
NoSuchElementException 1.检查元素的定位器是否正确 2.如果定位器正确,增加休眠时间 3.等待了足够的时间依然找不到的话,更换定位器的定位方式 NoSuchWindowExce ...
- C#获取一周的工作日显示(星期几)
代码如下: gridBandW1.Caption = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName ...
- 3897: Power
题解: 首先很贪心的选择 有最大的我们一定会用最大的 然后可以将序列分割.. 就变成了一道模拟题了.. 每个状态记录(h,t,h-have,t-need) 注意一下细节就可以了 代码: #includ ...
- [转]笔记本怎么设置WIfi热点
https://jingyan.baidu.com/article/335530da4f774019cb41c3eb.html 随着手机的发展,流量的消耗也是大大地增加.虽然很多手机支持wifi,但是 ...
- Flink--Split和select
Split就是将一个DataStream分成两个或者多个DataStream Select就是获取分流后对应的数据 val env = StreamExecutionEnvironment.getEx ...