有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布。第i位同学希望在第ti天或之前得知所有课程的成绩。如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最后公布成绩的课程公布成绩,每等待一天就会产生C不愉快度。对于第i门课程,按照原本的计划,会在第bi天公布成绩。有如下两种操作可以调整公布成绩的时间:
1.将负责课程X的部分老师调整到课程Y,调整之后公布课程X成绩的时间推迟一天 ,公布课程Y成绩的时间提前一天;每次操作产生A不愉快度。
2.增加一部分老师负责学科Z,这将导致学科Z的出成绩时间提前一天;每次操作产生B不愉快度。
上面两种操作中的参数X,Y,Z均可任意指定,每种操作均可以执行多次 ,每次执行时都可以重新指定参数。
现在希望你通过合理的操作,使得最后总的不愉快度之和最小,输出最小的不愉快度之和即可

输入描述:
第一行三个非负整数A,B,C,描述三种不愉快度,详见【问题描述】;
第二行两个正整数n,m(1 ≤ n,m ≤ 105),分别表示学生的数量和课程的数量;
第三行n个正整数ti,表示每个学生希望的公布成绩的时间;
第四行m个正整数bi,表示按照原本的计划,每门课程公布成绩的时间。
1 ≤ N,M,Ti,Bi ≤ 100000,0 ≤ A,B,C ≤ 100000

输出描述:
输出一行一个整数,表示最小的不愉快度之和。
示例1
输入
100 100 2
4 5
5 1 2 3
1 1 2 3 3
输出
6
说明
由于调整操作产生的不愉快度太大,所以在本例中最好的方案是不进行调整; 全部
5 的门课程中,最慢的在第 3 天出成绩;
同学 1 希望在第 5 天或之前出成绩,所以不会产生不愉快度;
同学 2 希望在第 1 天或之前出成绩,产生的不愉快度为 (3 - 1) * 2 = 4;
同学 3 希望在第 2 天或之前出成绩,产生的不愉快度为 (3 - 2) * 2 = 2;
同学 4 希望在第 3 天或之前出成绩,所以不会产生不愉快度;
不愉快度之和为 4 + 2 = 6 。

#include<bits/stdc++.h>
#define MAXN 100005
#define INF 1e16
typedef long long LL;
using namespace std;
int n, m, a, b, c;
LL student[MAXN], course[MAXN];
int read()
{int x = 0; char c = getchar();while(c < '0' || c > '9')c = getchar();while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();return x;
}
int main()
{a = read(), b = read(), c = read(), n = read(), m = read();int day = 0; LL cost = 0, mov = 0, left = 0, ans;for(int i = 1; i <= n; i++){int t;t = read();student[t]++;day = max(day, t);}for(int i = 1; i <= m; i++){int t;t = read();course[t]++;day = max(day, t);}for(int i = 1; i <= day; i++){cost += student[i] * (day - i);left += course[i] * (day - i);student[i] += student[i - 1];  //维护前缀和course[i] += course[i - 1];}ans = cost * c;for(int i = day - 1; i > 0; i--){mov += (m - course[i]); //在这天后完结的课需要向前移动一天left -= course[i];       //前面的所有课程向后移动的范围减少了1天cost -= student[i];       //减掉希望在这天以前完结的学生一天的不满意度if(c >= INF && cost) continue;LL p = left > 0 ? left : 0;if(mov < p) p = mov;if(a < b) ans = min(ans, p * a + (mov - p) * b + cost * c);else ans = min(ans, mov * b + cost * c);}printf("%lld\n", ans);return 0;
}

[SHOI2017]期末考试相关推荐

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

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

  2. BZOJ4868: [Shoi2017]期末考试

    Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 936  Solved: 426 [Submit][Status][Discuss] Descript ...

  3. BZOJ4868 Shoi2017期末考试(三分+贪心)

    容易想到枚举最晚发布成绩的课哪天发布,这样与ti和C有关的贡献固定.每门课要么贡献一些调节次数,要么需要一些调节次数,剩下的算贡献也非常显然.这样就能做到平方级别了. 然后大胆猜想这是一个凸函数三分就 ...

  4. 南昌大学计算机专业高数课本,南昌大学高等数学期末考试.pdf

    南昌大学2008学年第二学期高等数学期末考试试卷 ( 3 15 ) 一. 填空题 每空 分,共 分           a 3i  j  2k, b i  2j  k, ( ...

  5. 清华《摸鱼学导论》开班啦!1000多学子在线摸鱼,无期末考试

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 浩楠 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 什 ...

  6. 四川大学java试题_四川大学2013年计算机(软件)学院Java语言程序设计期末考试试题B卷...

    四川大学期末考试试题(闭卷) (2013 -2014学年第1学期) 课程号:课程名称: Java语言程序设计(B 卷)任课教师: 适用专业年级:学号:姓名: 一.单项选择题(本大题共20小题,每小题2 ...

  7. 计算机组装与维修是几级考试,计算机组装与维修期末考试试卷讲解学习.pdf

    学而不思则惘,思而不学则殆 组装与维修期末考试试卷 一.选择题 1.下列显卡接口中,能在一根线缆上同时传输高清晰.全数字的音频和视频信号的是() A .DVI B.S-VIDEO C .D-SUB D ...

  8. python期末考试试题

    python期末考试试题汇总 学习 2020-4-105589阅读 · 98喜欢 · 11评论 想个昵称憋一天 粉丝:370文章:31 关注 6.for i in range(2,n): if n%i ...

  9. 大一计算机期末考试高数试卷,高等数学大一期末试卷(A)及答案

    清华大学,高等数学,期末,考试,复习 清华大学 2011-2012学年第 一 学期期末考试试卷(A卷) 及参考解答与评分标准 考试科目: 高等数学A(上) 考试班级: 2009级工科各班 考试方式: ...

  10. 滨州学院计算机自荐考试题型,滨州学院2004—2005学年第一学期期末考试计算机科学教育专业02级《数据库原理》试题及答案(3份,另附习题集)...

    内容简介: 滨州学院2004-2005学年第一学期期末考试计算机科学教育专业02级<数据库原理>试题及答案(3份) <数据库原理>模拟试题一 一.选择题(每题1分,共5分) 1 ...

最新文章

  1. 将h5用HBuilderX打包成安卓app后,document.documentElement.scrollTop的值始终为0或者document.body.scrollTop始终为0...
  2. spark项目实战:电商分析平台之各个范围Session步长、访问时长占比统计(需求一)
  3. SharePoint 2013 场解决方案包含第三方程序集
  4. react招聘项目——使用cookie实现项目自动登录功能
  5. 什么是好的错误消息? 讨论一下Java系统中的错误码设计
  6. 总是记不住java的IO流用法?用N个问题教你掌握java IO流
  7. PLMN中的USSD与IMS域中的USSD
  8. ES 数据导出和数据导入
  9. .Net Core MVC使用EF
  10. 普适计算Topic推荐-AMiner
  11. 响应式网页设计学习笔记
  12. 如何给抖音视频选择配乐?音乐是抖音作品重要的组成部分
  13. Spring学习笔记之MyBatis
  14. Push to origin/master was rejected解决办法
  15. 《计算机应用基础》 东师,A东师《计算机应用基础》15春在线作业 .doc
  16. 内部披露!最新互联网大厂的薪资和职级一览
  17. redis list操作leftpop
  18. 浅谈PageRank
  19. leetcode阶段总结——拓扑排序
  20. 参考一:双缝干涉与波长测量

热门文章

  1. 巨杉数据库sequoiadb
  2. 漫谈京东(一)——自营手机类商品数据分析
  3. 我的练习项目: 模拟淘宝搜索商品、添加商品到购物车功能、修改商品信息功能
  4. PHP 图片合成、仿微信群头像
  5. USB - DFU(dfuse\stm32)、fastboot、dfu-util
  6. 数据结构与算法分析(十七)--- 怎么用回溯剪枝高效穷举所有可行解?
  7. 使用IEEE802.1Q VLAN实现单线复用之牛刀小试篇
  8. 论文代码复现 | 无人机与卡车联合配送(Python+Gurobi)(The flying sidekick traveling salesman problem)
  9. php im即时消息,im即时通讯php
  10. React className的写法