洛谷 P3745 [六省联考2017]期末考试
题目描述
有 nnn 位同学,每位同学都参加了全部的 mmm 门课程的期末考试,都在焦急的等待成绩的公布。
第 iii 位同学希望在第 tit_iti 天或之前得知所有课程的成绩。如果在第 tit_iti 天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程公布成绩,每等待一天就会产生 CCC 不愉快度。
对于第 iii 门课程,按照原本的计划,会在第 bib_ibi 天公布成绩。
有如下两种操作可以调整公布成绩的时间:
- 将负责课程 XXX 的部分老师调整到课程 YYY,调整之后公布课程 XXX 成绩的时间推迟一天,公布课程 YYY 成绩的时间提前一天;每次操作产生 AAA 不愉快度。
- 增加一部分老师负责学科 ZZZ,这将导致学科 ZZZ 的出成绩时间提前一天;每次操作产生 BBB 不愉快度。
上面两种操作中的参数 X,Y,ZX, Y, ZX,Y,Z 均可任意指定,每种操作均可以执行多次,每次执行时都可以重新指定参数。
现在希望你通过合理的操作,使得最后总的不愉快度之和最小,输出最小的不愉快度之和即可。
输入输出格式
输入格式:
第一行三个非负整数 A,B,CA, B, CA,B,C,描述三种不愉快度,详见【题目描述】;
第二行两个正整数 n,mn, mn,m,分别表示学生的数量和课程的数量;
第三行 nnn 个正整数 tit_iti,表示每个学生希望的公布成绩的时间;
第四行 mmm 个正整数 bib_ibi,表示按照原本的计划,每门课程公布成绩的时间。
输出格式:
输出一行一个整数,表示最小的不愉快度之和。
输入输出样例
说明
【样例 1 说明】
由于调整操作产生的不愉快度太大,所以在本例中最好的方案是不进行调整; 全部
5 的门课程中,最慢的在第 3 天出成绩;
同学 1 希望在第 5 天或之前出成绩,所以不会产生不愉快度;
同学 2 希望在第 1 天或之前出成绩,产生的不愉快度为 (3 − 1) ∗ 2 = 4;
同学 3 希望在第 2 天或之前出成绩,产生的不愉快度为 (3 − 2) ∗ 2 = 2;
同学 4 希望在第 3 天或之前出成绩,所以不会产生不愉快度;
不愉快度之和为 4 + 2 = 6 。

题解:
不知道为什么,最近总是做贪心题,这个题目,我们发现序列的答案只和最后一门公布答案的学科的时间有关,于是我们枚举最后一门学科公布的时间x,强制让所有的学科在这一天之前前公布,统计前面学科可以救助他们的次数和要让所有科目都在x之前的最小操作次数,比较A和B,尽量用小的就可以了.
不知道为什么必须开unsigned long long,不然会wa两个点.
代码:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
#define MAXN 200010
#define ll unsigned long long
using namespace std;
ll A,B,C;
ll a[MAXN],b[MAXN],suma[MAXN],sumb[MAXN];
ll n,m,maxx,ans=1ll<<; int erfen(ll s[],int l,int r,int now){
int ans=,mid;
while(l<=r){
int mid=(l+r)/;
if(s[mid]<=now) ans=mid,l=mid+;
else r=mid-;
}
return ans;
} ll work(int now){
ll sav=,cos=,ps;
ps=erfen(b,,m,now);
sav=ps*now-sumb[ps],cos=(sumb[m]-sumb[ps])-(m-ps)*now;
ll ex=,bs=;
ps=erfen(a,,n,now);
bs=max((now*ps-suma[ps])*C,(ll));
if(A>=B) ex=cos*B;
else{
if(sav>=cos) ex=cos*A;
else ex=sav*A+(cos-sav)*B;
}
return bs+ex;
} int main()
{
cin>>A>>B>>C;cin>>n>>m;
for(int i=;i<=n;i++) scanf("%lld",&a[i]);
for(int i=;i<=m;i++) scanf("%lld",&b[i]),maxx=max(maxx,b[i]);
sort(a+,a+n+);
sort(b+,b+m+);
for(int i=;i<=n;i++) suma[i]=suma[i-]+a[i];
for(int i=;i<=m;i++) sumb[i]=sumb[i-]+b[i];
for(int i=;i<=maxx;i++) ans=min(ans,work(i));
printf("%lld",ans);
return ;
}
洛谷 P3745 [六省联考2017]期末考试的更多相关文章
- 洛谷P3745 [六省联考2017]期末考试
传送门 题解 //Achen #include<algorithm> #include<iostream> #include<cstring> #include&l ...
- [luogu] P3745 [六省联考2017]期末考试 (贪心)
P3745 [六省联考2017]期末考试 题目描述 有 \(n\) 位同学,每位同学都参加了全部的 \(m\) 门课程的期末考试,都在焦急的等待成绩的公布. 第 \(i\) 位同学希望在第 \(t_i ...
- 【BZOJ4868】[六省联考2017]期末考试(贪心)
[BZOJ4868][六省联考2017]期末考试(贪心) 题面 BZOJ 洛谷 题解 显然最终的答案之和最后一个公布成绩的课程相关. 枚举最后一天的日期,那么维护一下前面有多少天可以向后移,后面总共需 ...
- 洛谷 P3747 [六省联考2017]相逢是问候 解题报告
P3747 [六省联考2017]相逢是问候 题目描述 \(\text {Informatik verbindet dich und mich.}\) 信息将你我连结. \(B\) 君希望以维护一个长度 ...
- [BZOJ4868][六省联考2017]期末考试(三分)
4868: [Shoi2017]期末考试 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 964 Solved: 439[Submit][Status ...
- 题解 洛谷P3745 【[六省联考2017]期末考试】
这题有点绕,我写了\(2h\)终于搞明白了. 主要思路:枚举最晚公布成绩的时间\(maxt\),然后将所有公布时间大于\(maxt\)的课程都严格降为\(maxt\)即可. 在此之前,还要搞清楚一个概 ...
- 洛谷P3750 [六省联考2017]分手是祝愿(期望dp)
传送门 嗯……概率期望这东西太神了…… 先考虑一下最佳方案,肯定是从大到小亮的就灭(这个仔细想一想应该就能发现) 那么直接一遍枚举就能$O(nlogn)$把这个东西给搞出来 然后考虑期望dp,设$f[ ...
- 洛谷P3746 [六省联考2017]组合数问题
题目描述 组合数 C_n^mCnm 表示的是从 n 个互不相同的物品中选出 m 个物品的方案数.举个例子,从 (1;2;3) 三个物品中选择两个物品可以有 (1;2);(1;3);(2;3) 这三种 ...
- 洛谷P3749 [六省联考2017]寿司餐厅
传送门 题解 这几道都是上周llj讲的题,题解也写得十分好了,所以直接贴了几个链接和代码. //Achen #include<algorithm> #include<iostream ...
随机推荐
- 【Offer】[64] 【求1+2+...+n】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 求1+2+...+n,要求不能使用乘除法.for. while if else. switch. case等关键字及条件判断语句( A? ...
- 【Offer】[57-2] 【和为S的连续正数序列】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数).例如,输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以 ...
- 洛谷 P1091合唱队列
吾王剑之所指,吾等心之所向 ——<Fate/stay night> 题目:https://www.luogu.org/problem/P ...
- MySQL二进制日志挖掘器BinlogMiner 1.0发布了。
MySQL从2014年开始超越SQL Server, 占据DB-Engines数据库流行度排行榜第二名, 是一种非常流行的关系型数据库, 特别是在互联网领域, 是一种应该掌握的数据库系统.最近在学My ...
- android 实现 波纹效果+图片左右无限滑动缩放效果
项目中用到的 ,记录下.说不定下次又用到了.就提取出来了. 录制效果一般,将就看吧.代码地址如下 https://yunpan.cn/ckQaXMpYwdUnn (提取码:7ac7)
- 动态设置 view 在布局中位置
一.概述 有时项目需要动态设置一个 底部列表,比如 popupwindow ,listview 底部显示 ,所以记录一下 此处, android.support.v7.widget.CardView ...
- spring aop 之链式调用
关关雎鸠,在河之洲.窈窕淑女,君子好逑. 概述 AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横 ...
- 2010年NOIP普及组复赛题解
题目及涉及的算法: 数字统计:入门题: 接水问题:基础模拟题: 导弹拦截:动态规划.贪心: 三国游戏:贪心.博弈论. 数字统计 题目链接:洛谷 P1179 这道题目是一道基础题. 我们只需要开一个变量 ...
- CSS精灵图合成工具
链接:http://pan.baidu.com/s/1o7OUUVo 提取密码:rmnx
- Linux环境基于CentOS7 搭建部署Docker容器
1.Docker容器概述 区分Docker容器技术和VM虚拟机技术: evernotecid://394EFE90-9CE0-4D65-A8CD-DFEC0DC8061E/appyinxiangcom ...