【ATCOER、D - ±1 Operation 2】前缀和+排序二分
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays; public class Main {
public static void main(String[] args) throws Exception {
int N,Q;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] words = br.readLine().split("\\s+");
N = Integer.valueOf(words[0]);
Q = Integer.valueOf(words[1]);
long[] A = new long[N];
words = br.readLine().split("\\s+");
for (int i = 0; i < N; i++) {
A[i] = Long.valueOf(words[i]);
}
long[] sum = new long[N];
Arrays.sort(A);
for (int i = 0; i < N; i++) {
if( i==0){
sum[0] = A[i];
}else{
sum[i] = sum[i-1] + A[i];
}
}
//
for (int i = 0; i < Q; i++) {
long x = Long.valueOf(br.readLine());
int upper = upperBound(A,0,N,x); if( upper == 0){
long ans = sum[N-1] - x*N;
System.out.println(ans);
}
else if( upper < N){
long ans = x*upper - sum[upper-1];
ans += sum[N-1] - sum[upper-1];
ans -= x*(N-upper);
System.out.println(ans);
}else{
long ans = x*N - sum[N-1];
System.out.println(ans);
}
} } public static int upperBound(long[] arr, int start, int high, long key) {
while (start < high) {
int mid = (start+high)/2; if(arr[mid] >key){
high = mid;
}else{
start = mid+1;
}
}
return high;
} }
【ATCOER、D - ±1 Operation 2】前缀和+排序二分的更多相关文章
- UVA.10474 Where is the Marble ( 排序 二分查找 )
UVA.10474 Where is the Marble ( 排序 二分查找 ) 题意分析 大水题一道.排序好找到第一个目标数字的位置,返回其下标即可.暴力可过,强行写了一发BS,发现错误百出.应了 ...
- HDU 6299.Balanced Sequence-贪心、前缀和排序 (2018 Multi-University Training Contest 1 1002)
HDU6299.Balanced Sequence 这个题就是将括号处理一下,先把串里能匹配上的先计数去掉,然后统计左半边括号的前缀和以及右半边括号的前缀和,然后结构体排序,然后遍历一遍,贪心策略走一 ...
- ACM学习历程—HDU5700 区间交(树状数组 && 前缀和 && 排序)
http://acm.hdu.edu.cn/showproblem.php?pid=5700 这是这次百度之星初赛2B的第五题.省赛回来看了一下,有这样一个思路:对于所有的区间排序,按左值排序. 然后 ...
- 前缀和+排序——cf1043E
先不考虑第二个条件 要求i和所有其他人的分数和最小,选择x还是y,可以推出一个公式,即差xi-yi小的j都选y,反之都选x 那么按照xi-yi排序即可 然后再考虑第二个条件,做减法就行 /* xi+y ...
- Codeforces Gym 100513D D. Data Center 前缀和 排序
D. Data Center Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/560/proble ...
- 牛客练习赛46 B 华华送奕奕小礼物 (预处理前缀和,二分)
链接:https://ac.nowcoder.com/acm/contest/894/B?&headNav=acm 来源:牛客网 华华送奕奕小礼物 时间限制:C/C++ 1秒,其他语言2秒 空 ...
- 2014 Super Training #6 H Edward's Cola Plan --排序+二分
原题: ZOJ 3676 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3676 题意:给每个朋友一瓶可乐,可乐有普通和高 ...
- CROC 2016 - Elimination Round (Rated Unofficial Edition) D. Robot Rapping Results Report 拓扑排序+二分
题目链接: http://www.codeforces.com/contest/655/problem/D 题意: 题目是要求前k个场次就能确定唯一的拓扑序,求满足条件的最小k. 题解: 二分k的取值 ...
- Codeforces 484B Maximum Value(排序+二分)
题目链接: http://codeforces.com/problemset/problem/484/B 题意: 求a[i]%a[j] (a[i]>a[j])的余数的最大值 分析: 要求余数的最 ...
- [bzoj4552][Tjoi2016&Heoi2016]排序-二分+线段树
Brief Description DZY有一个数列a[1..n],它是1∼n这n个正整数的一个排列. 现在他想支持两种操作: 0, l, r: 将a[l..r]原地升序排序. 1, l, r: 将a ...
随机推荐
- .NET 云原生架构师训练营(模块二 基础巩固 EF Core 关系)--学习笔记
2.4.4 EF Core -- 关系 一对多 一对一 多对多 示例 关系:https://docs.microsoft.com/zh-cn/ef/core/modeling/relationship ...
- [Maven]关于Maven的生命周期与命令
关于Maven的生命周期与命令 工作的时候对Maven的install和package的使用产生了一些疑问,干脆将Maven的整个生命周期都复习总结一遍. 先看下在IDEA中Maven的生命周期节点: ...
- Spring rce CVE-2022-22965
原理大致是这样:spring框架在传参的时候会与对应实体类自动参数绑定,通过"."还可以访问对应实体类的引用类型变量.使用getClass方法,通过反射机制最终获取tomcat的日 ...
- Android使用SurfaceView实现签名板
SurfaceView使用 首先创建一个SurfaceViewSign类,继承SurfaceView类,继承 SurfaceHolder.Callback和Runnable接口,代码如下: impor ...
- win32 - Direct3D 11的demo创建
我们可以使用D3D为游戏,科学和桌面应用程序创建3-D图形. 非官方demo实例: https://github.com/Ray1024/D3D11Tutorial 当然,我们第一步要开始认识里面的基 ...
- win32 - RegisterRawInputDevices 和 GetRawInputData
RegisterRawInputDevices 可以注册鼠标或者键盘等输入的信息,然后GetRawInputData可以获取传来的WM_INPUT消息中的输入信息. 代码参考: #include &l ...
- ADVMP 三代壳(vmp加固)原理分析(加壳流程)
开源项目地址 https://github.com/chago/ADVMP vmp 加固可以说时各大加固厂商的拳头产品了,这个开源项目虽然不是十分完善,让我们可以一览vmp加固的原理,是十分好的学习资 ...
- 【Android逆向】apk 反编译
1. Kali搭建apktool环境 1. 访问apktool 官网https://ibotpeaches.github.io/Apktool/install/ 参考红圈里的步骤处理即可 2. 执行命 ...
- [BUUCTF][WEB][极客大挑战 2019]BabySQL 1
靶机打开url 界面上显示,它做了更严格的过滤.看来后台是加了什么过滤逻辑 老规矩先尝试时候有sql注入的可能,密码框输入 123' 爆出sql错误信息,说明有注入点 构造万能密码注入 123' or ...
- Qt三方库开发技术(一):QuaZIP介绍、编译和使用
前言 Qt使用一些压缩解压功能,探讨过libzip库,zlib库,libzip库比较原始,还有其他库,都比较基础,而在基础库之上,又有高级封装库,Qt中的QuaZIP是一个很好的选择. 本文主要 ...