题目描述

有 nnn 位同学,每位同学都参加了全部的 mmm 门课程的期末考试,都在焦急的等待成绩的公布。

第 iii 位同学希望在第 tit_iti​ 天或之前得知所有课程的成绩。如果在第 tit_iti​ 天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程公布成绩,每等待一天就会产生 CCC 不愉快度。

对于第 iii 门课程,按照原本的计划,会在第 bib_ibi​ 天公布成绩。

有如下两种操作可以调整公布成绩的时间:

  1. 将负责课程 XXX 的部分老师调整到课程 YYY,调整之后公布课程 XXX 成绩的时间推迟一天,公布课程 YYY 成绩的时间提前一天;每次操作产生 AAA 不愉快度。
  2. 增加一部分老师负责学科 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: 复制

100 100 2
4 5
5 1 2 3
1 1 2 3 3

输出样例#1: 复制

6

输入样例#2: 复制

3 5 4
5 6
1 1 4 7 8
2 3 3 1 8 2

输出样例#2: 复制

33

说明

【样例 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<<60;int erfen(ll s[],int l,int r,int now){int ans=0,mid;while(l<=r){int mid=(l+r)/2;if(s[mid]<=now) ans=mid,l=mid+1;else r=mid-1;}return ans;
}ll work(int now){ll sav=0,cos=0,ps;ps=erfen(b,1,m,now);sav=ps*now-sumb[ps],cos=(sumb[m]-sumb[ps])-(m-ps)*now;ll ex=0,bs=0;ps=erfen(a,1,n,now);bs=max((now*ps-suma[ps])*C,(ll)0);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=1;i<=n;i++) scanf("%lld",&a[i]);for(int i=1;i<=m;i++) scanf("%lld",&b[i]),maxx=max(maxx,b[i]);sort(a+1,a+n+1);sort(b+1,b+m+1);for(int i=1;i<=n;i++) suma[i]=suma[i-1]+a[i];for(int i=1;i<=m;i++) sumb[i]=sumb[i-1]+b[i];for(int i=1;i<=maxx;i++) ans=min(ans,work(i));printf("%lld",ans);return 0;
}

转载于:https://www.cnblogs.com/renjianshige/p/9615282.html

洛谷 P3745 [六省联考2017]期末考试相关推荐

  1. 洛谷 P3750 [六省联考2017]分手是祝愿

    传送门 题解 //Achen #include<algorithm> #include<iostream> #include<cstring> #include&l ...

  2. bzoj千题计划262:bzoj4868: [六省联考2017]期末考试

    http://www.lydsy.com/JudgeOnline/problem.php?id=4868 假设 最晚出成绩的是第i天 预处理 cnt[i] 表示 有多少个学生 期望出成绩的那一天 &l ...

  3. 六省联考2017 Day1

    目录 2018.3.18 Test T1 BZOJ.4868.[六省联考2017]期末考试 T2 T3 BZOJ.4870.[六省联考2017]组合数问题(DP 矩阵快速幂) 总结 考试代码 T1 T ...

  4. 【BZOJ4873】[六省联考2017]寿司餐厅(网络流)

    [BZOJ4873][六省联考2017]寿司餐厅(网络流) 题面 BZOJ 洛谷 题解 很有意思的题目 首先看到答案的计算方法,就很明显的感觉到是一个最大权闭合子图. 然后只需要考虑怎么构图就行了. ...

  5. P3749 [六省联考2017]寿司餐厅(最大权闭合子图变形)

    P3749 [六省联考2017]寿司餐厅 最大权闭合子图 有两种建图方式 下面a[i]a_[i]a[​i]表示寿司iii的编号 第二种建图其实就是把di,i也当成一个寿司而已d_{i,i}也当成一个寿 ...

  6. BZOJ 4872 luogu P3750 [六省联考2017]分手是祝愿

    4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec  Memory Limit: 512 MB [Submit][Status][Discuss] Description ...

  7. [BZOJ4873][六省联考2017]寿司餐厅(最大权闭合子图)

    4873: [Shoi2017]寿司餐厅 Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 490  Solved: 350 [Submit][Stat ...

  8. 黑吉辽沪冀晋六省联考 2017 BZOJ 486848694870487148724873

    趁着网络上题解还不是很多,赶快怒写一发骗一下访问量 这套题在BZOJ上的题号是4868-4873. 感觉还不错,就是有一些题弄起来有一点小恶心-- 这套题的部分分给得都很多,很良心的QAQ BZOJ ...

  9. 洛谷P4383 [八省联考2018]林克卡特树lct(DP凸优化/wqs二分)

    题目描述 小L 最近沉迷于塞尔达传说:荒野之息(The Legend of Zelda: Breath of The Wild)无法自拔,他尤其喜欢游戏中的迷你挑战. 游戏中有一个叫做"LC ...

最新文章

  1. Android中WIFI开发总结(一)
  2. SQLite学习手册(内存数据库)
  3. 【spring cloud zookeeper】KeeperErrorCode = Unimplemented for
  4. latex学习篇【一】论文中的图片技巧QA
  5. idea整合jboos_在 idea 中 启动 jboss 后, 没有运行部署(通过idea部署)的ssm项目,打开后项目404...
  6. ubuntu boot中grub误操作 导致系统开进grub
  7. 确保帐户安全 谈MySQL数据库安全解决方案
  8. 我来重新学习 javascript 的面向对象(part 1)
  9. 第13章 线程安全与锁优化
  10. 第九节、人脸检测之Haar分类器
  11. 去中心化交易所协议0x protocol A轮融资获IOSG Ventures 支持
  12. 微软又开源了一个机器学习框架,这次是核心产品的机器学习引擎infer.NET
  13. C语言程序设计知识点总结归纳(全书)
  14. log4j日志级别小结
  15. 熵的性质:可加性和强可加性
  16. scala时间处理-获取今天日期,昨天日期,本周时间,本月时间,时间戳转换日期,时间比较
  17. 华虹技通华为鸿蒙,浩丰科技(300419)个股分析_牛叉诊股_同花顺财经
  18. win10 取消任务栏图标合并
  19. 外企面试英文自我介绍【面试经验】
  20. 2019高考江苏卷语文作文

热门文章

  1. ajax请求上传数组
  2. sqlserver2008r2 还原bak文件
  3. apollo 配置中心小结
  4. 千方科技的中场战事:选择、进化与野望
  5. Uber发布的CoordConv遭深度质疑,“翻译个坐标也需要训练?”
  6. 英伟达老黄又来送大礼,全新Titan V CEO限量版GPU火力全开
  7. 一架无人机加入警队4个月,墨西哥小城犯罪率下降了10%
  8. 他实现了AlphaGo Zero的算法,发现可能还得训练1700年 | 代码
  9. 霍金这次想帮AI说点好话,后来没忍住……
  10. HTTP请求常见错误大全