【bzoj4868】[Shoi2017]期末考试 前缀和+暴力
题目描述
输入
输出
样例输入
100 100 2
4 5
5 1 2 3
1 1 2 3 3
样例输出
6
题解
啥数据结构都没有的sb题
我TM考场上这道sb题才拿了60分真TM丧心病狂。
读懂题之后大概是NOIP普及组小学生都会。
直接枚举最终时间,求出同学的不愉快度,然后根据A和B的大小关系决定是否应该调整,以及应该调整多少。使用一个前缀和维护时间和,并用两个指针维护第一个大于当前时间的等待时间和公布时间。
代码一点也不难,时间复杂度是$O(n\log n)$的。
另外bzoj中说的$C=10^{18}$有误,应为$10^{16}$。
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- #define N 100010
- using namespace std;
- typedef long long ll;
- ll x[N] , y[N] , sx[N] , sy[N];
- int main()
- {
- ll n , m , i , j , k , a , b , c , ans = 1ll << 62 , s1 , s2 , c1 , c2 , r = 0;
- scanf("%lld%lld%lld%lld%lld" , &a , &b , &c , &n , &m);
- for(i = 1 ; i <= n ; i ++ ) scanf("%lld" , &x[i]) , r = max(r , x[i]);
- for(i = 1 ; i <= m ; i ++ ) scanf("%lld" , &y[i]) , r = max(r , y[i]);
- sort(x + 1 , x + n + 1) , sort(y + 1 , y + m + 1);
- for(i = 1 ; i <= n ; i ++ ) sx[i] = sx[i - 1] + x[i];
- for(i = 1 ; i <= m ; i ++ ) sy[i] = sy[i - 1] + y[i];
- if(c >= 0x7fffffff) r = x[1];
- for(i = 1 , j = k = 0 ; i <= r ; i ++ )
- {
- while(j < n && x[j + 1] < i) j ++ ;
- while(k < m && y[k + 1] < i) k ++ ;
- s1 = i * k - sy[k] , s2 = sy[m] - sy[k] - i * (m - k) , c1 = c * (i * j - sx[j]);
- if(a >= b) c2 = s2 * b;
- else if(s1 >= s2) c2 = s2 * a;
- else c2 = s1 * a + (s2 - s1) * b;
- ans = min(ans , c1 + c2);
- }
- printf("%lld\n" , ans);
- return 0;
- }
【bzoj4868】[Shoi2017]期末考试 前缀和+暴力的更多相关文章
- bzoj4868: [Shoi2017]期末考试(三分法)
4868: [Shoi2017]期末考试 题目:传送门 题解: Get到一个新姿势...三分法 一开始百度百科的时候下了一跳...中国...的根??? 学懂了之后其实运用起来就根二分差不多啊,不过证明 ...
- [bzoj4868][Shoi2017]期末考试
来自FallDream 的博客,未经允许,请勿转载,谢谢. 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天或之前得知所.有.课程的成绩.如果在 ...
- BZOJ4868 [Shoi2017]期末考试 【三分 + 贪心】
题目链接 BZOJ4868 题解 最后的答案决定于最后一个公布的成绩 显然这个是答案关于这个时间点是呈凸单调的 三分一下这个时间点 时间点固定,在这个时间前的人都会产生不愉快度,在这个时间前的科目可以 ...
- BZOJ4868 Shoi2017期末考试(三分+贪心)
容易想到枚举最晚发布成绩的课哪天发布,这样与ti和C有关的贡献固定.每门课要么贡献一些调节次数,要么需要一些调节次数,剩下的算贡献也非常显然.这样就能做到平方级别了. 然后大胆猜想这是一个凸函数三分就 ...
- 并不对劲的bzoj4868: [Shoi2017]期末考试
传送门-> 三分裸题. 发现答案只和最后一个科目公布成绩的时间有关. 科目公布成绩的时间越早,老师们的不愉快度越高,这个时间越晚,学生们的不愉快度越高. 它看上去像个单峰的,那么就三分好了. 判 ...
- 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 ...
- bzoj 4868: [Shoi2017]期末考试
Description 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布.第i位同学希望在第ti天 或之前得知所.有.课程的成绩.如果在第ti天,有至少一门课程的成绩没有 ...
- [SHOI2017]期末考试
题目描述 有n位同学,每位同学都参加了全部的m门课程的期末考试,都在焦急的等待成绩的公布. 第i位同学希望在第ti天或之前得知所有课程的成绩.如果在第ti天,有至少一门课程的成绩没有公布,他就会等待最 ...
随机推荐
- IOS画线条
- (void)drawRect:(CGRect)rect { // draw a rounded rect bezier path filled with blue CGContextRef aRe ...
- 修改完linux bashrc文件之后,如何不重启系统使其生效
修改完后,输入如下命令即可 ##@##:~/ source ~/.bashrc 之后bashrc文件就可以使用! 注: 使用ssh登陆shell的时候,系统不会自动调用.bashrc文件, 只是 ...
- 洛谷 P1926 小书童——刷题大军
题目背景 数学是火,点亮物理的灯:物理是灯,照亮化学的路:化学是路,通向生物的坑:生物是坑,埋葬学理的人. 文言是火,点亮历史宫灯:历史是灯,照亮社会之路:社会是路,通向哲学大坑:哲学是坑,埋葬文科生 ...
- 使用Kubernetes里的job计算圆周率后2000位
使用Kubernetes里的job(作业),我们可以很方便地执行一些比较耗时的操作. 新建一个job.ymal文件: 定义了一个Kubernetes job,名称为pi,类型为job,容器名称为pi, ...
- Servlet Context
Servlet Context Container Provider 负责提供ServletContext的实现. A ServletContext is rooted at a known path ...
- htmlunit抓取js执行后的网页源码
上次我不是写了一个自动抓取博客访问量吗 (点击打开链接) 可是昨天晚上我又运行的时候,发现不能用了.. 运行了几次 发现使用URLConnection 得到的网页源码和浏览器直接查看的不同. URLC ...
- C++值传递、引用传递和指针传递
#include<iostream> using namespace std; //值传递 void change1(int n){ cout<<"值传递--函数操作 ...
- 继上一篇随笔,优化3张以上图片轮播React组件
import React from 'react'; import PropTypes from 'prop-types'; import {getSwipeWay} from '../utils/s ...
- CSS在线压缩
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Git学习——创建本地仓库、提交文件
创建Git仓库 新建或找一个存在的文件夹,在命令行进入该文件夹,输入命令 git init 添加文件到Git仓库 首先使用命令git add <file>,可以多次添加文件: 使用命令gi ...