并不对劲的bzoj4868: [Shoi2017]期末考试
传送门->
三分裸题。
发现答案只和最后一个科目公布成绩的时间有关。
科目公布成绩的时间越早,老师们的不愉快度越高,这个时间越晚,学生们的不愉快度越高。
它看上去像个单峰的,那么就三分好了。
判断时就是个简单的贪心。对于结束时间T,A>B时,让所有T后结束的科目的老师花B的不愉快度加速;B>A时,让所有T后结束的科目花A的不愉快度接受T前结束的科目老师,剩下的再花B的不愉快度加速。再统计学生的不愉快度,就能求出总不愉快度了。
据说三分、二分的题,看出它是道三分或二分的题就已经完成了一半。
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iomanip>
#include<iostream>
#include<map>
#include<vector>
#include<queue>
#include<stack>
#define rep(i,x,y) for(register ULL i=(x);i<=(y);++i)
#define dwn(i,x,y) for(register ULL i=(x);i>=(y);--i)
#define maxn 100010
#define ULL unsigned long long
using namespace std;
ULL read()
{
ULL x=,f=;char ch=getchar();
while(!isdigit(ch)&&ch!='-')ch=getchar();
if(ch=='-')f=-,ch=getchar();
while(isdigit(ch))x=x*+ch-'',ch=getchar();
return x*f;
}
void write(ULL x)
{
char ch[];ULL f=;
if(!x){puts("");return;}
if(x<){putchar('-');x=-x;}
while(x)ch[++f]=x%+'',x/=;
while(f)putchar(ch[f--]);
putchar('\n');
}
ULL t[maxn],b[maxn],A,B,C,n,m,minc=-;
ULL three=,two=,one=;
void upd(ULL x){minc=minc==-?x:min(x,minc);}
ULL getans(ULL T)
{
// cout<<"T:"<<T<<" ";
ULL ans=,tmp1=,tmp2=;
rep(i,,m)
{
if(b[i]<=T)tmp1+=T-b[i];
else tmp2+=b[i]-T;
}
if(tmp1<tmp2)ans=tmp1*A+(tmp2-tmp1)*B;
else ans=tmp2*A;
ans=min(ans,tmp2*B);
rep(i,,n)if(t[i]<T)ans+=(T-t[i])*C;
return ans;
}
int main()
{
A=read(),B=read(),C=read();
n=read(),m=read();
rep(i,,n)t[i]=read();
rep(i,,m)b[i]=read();
sort(t+,t+n+),sort(b+,b+m+);
ULL L=,R=b[m];
while(R-L>=)
{
ULL lm=(R-L+one)/three+L,rm=(R-L+one)*two/three+L;
//cout<<L<<" "<<lm<<" "<<rm<<" "<<R<<endl;
ULL lans=getans(lm),rans=getans(rm);
upd(lans),upd(rans);
if(lans>rans) L=lm;
else R=rm;
}
rep(i,L,R)upd(getans(i));
write(minc);
return ;
}
/*
100 100 2
4 5
5 1 2 3
1 1 2 3 3
*/
/*
3 5 4
5 6
1 1 4 7 8
2 3 3 1 8 2
*/
以下与本题无关,勿看。


顺便说一些很令人不快的事情。
总有些人盲目地膜别人或者装弱,这听上去毫无意义。这样别人并不会觉得那个人有多谦虚,反而会很反感。这能够给乱膜者带来的弊大于利,他们也很清楚这一点,却还是要膜。这是为什么?我自以为,有的人可能是看着周围人都这么做,不想显得不合群,就也跟风模仿。也有人看着别人总膜自己,觉得不好意思,就也用同样的方式对付别人,这样就不会太别扭。这些只是被动的、不得不膜的人。但还有一些主动膜的人,才是带动盲目膜的不良风气的主力军。他们多半实力不低,却偏要以阴阳怪气的语气和奇怪的动作来贬低自己、抬高别人。这些可能只是被他们当成吸引别人注意的一种新奇手段。他们的另一个目的也不是在于表示谦虚,而是在于别人被膜之后说的“您那么强,怎么会弱呢”、“我比您菜多了”之类的话给他们带来的成就感。这一点上,就相当于是借对方之口嘲讽对方,给对方带来的困扰远多于直接批评讽刺。拒绝乱膜,从我做起!
并不对劲的bzoj4868: [Shoi2017]期末考试的更多相关文章
- bzoj4868: [Shoi2017]期末考试(三分法)
4868: [Shoi2017]期末考试 题目:传送门 题解: Get到一个新姿势...三分法 一开始百度百科的时候下了一跳...中国...的根??? 学懂了之后其实运用起来就根二分差不多啊,不过证明 ...
- [bzoj4868][Shoi2017]期末考试
来自FallDream 的博客,未经允许,请勿转载,谢谢. 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天或之前得知所.有.课程的成绩.如果在 ...
- BZOJ4868 [Shoi2017]期末考试 【三分 + 贪心】
题目链接 BZOJ4868 题解 最后的答案决定于最后一个公布的成绩 显然这个是答案关于这个时间点是呈凸单调的 三分一下这个时间点 时间点固定,在这个时间前的人都会产生不愉快度,在这个时间前的科目可以 ...
- BZOJ4868 Shoi2017期末考试(三分+贪心)
容易想到枚举最晚发布成绩的课哪天发布,这样与ti和C有关的贡献固定.每门课要么贡献一些调节次数,要么需要一些调节次数,剩下的算贡献也非常显然.这样就能做到平方级别了. 然后大胆猜想这是一个凸函数三分就 ...
- 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]期末考试 前缀和+暴力
题目描述 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待 ...
- 【BZOJ4868】期末考试(整数三分)
题意: 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天 或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待 ...
- bzoj 4868: [Shoi2017]期末考试
Description 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天 或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有 ...
随机推荐
- hdu1059(背包dp二进制优化)
Dividing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- eclispe使用
eclipse 快捷键 ctrl+shif+o :去除多余引用 ctrl+shift+x :转大写 ctrl+shift+y :转小写 ctrl+o :查找方法 Alt+ ← :回 ...
- php桥接模式
php桥接模式 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化. 示例:当一个信息时根据发送渠道分为:QQ消息.email消息.短信消息等根据消息类型分为:普通.警告.危急等每种消息都 ...
- php的错误控制运算符
php的错误控制运算符 PHP中提供了一个错误控制运算符“@”. 可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉: 如果开启了php.ini 中的 track_error ...
- 寒武纪camp Day5
补题进度:6/10 A(状压dp) 题意: 有n个数字1,2,...,n,有m个限制(a,b),表示至少要有一个数字a排在数字b的前面 你需要构造出一个含有数字1~n的序列,数字可以重复多次,要求该序 ...
- 【深入探索c++对象模型】data语义学二
单一继承中,base class 和derived class的对象都是从相同的地址开始,其间差异只在于derived class比较大,用以容纳自己的nonstatic members. 若vptr ...
- [Bash] Move and Copy Files and Folders with Bash
In this lesson we’ll learn how to move and rename files (mv) and copy (cp) them. Move index.html to ...
- [RxJS] Chain RxJS Operators Together with a Custom `pipe` Function using Array.reduce
Instead of writing complex operators, it's usually best to write simple, single-purpose operators th ...
- 【LeetCode】Swap Nodes in Pairs 链表指针的应用
题目:swap nodes in pairs <span style="font-size:18px;">/** * LeetCode Swap Nodes in Pa ...
- ansible学习之--简单学习笔记1
1.利用dm-crypt来创建加密文件系统.编写shell脚本(安装和卸载两个shell脚本) 2.编写ansible,playbook文件 3.编写python脚本 首先编写shell脚本 inst ...