题目描述

一天,小 DD 决定买一些糖果。他决定在两家不同的商店中买糖果,来体验更多的口味。

在每家商店中都有 nn 颗糖果,每颗糖果都有一个权值:愉悦度,代表小 DD 觉得这种糖果有多好吃。其中,第一家商店中的第 ii 颗糖果的愉悦度为 AiAi,而第二家商店中的第 ii 颗糖果的愉悦度为 BiBi。

在每家商店买的糖果会被打包到一个袋子中(可以在一家商店什么都不买,此时认为这家商店的袋子为空)。小 DD 回家后,因为这两个袋子外观是一样的,所以他会从两个袋子中随机选择一个.,然后吃光里面的糖果。小 DD 定义一种买糖果的方案的愉悦度为:吃到的糖果的愉悦度之和最小可能值

购买每颗糖果的花费均为 WW,小 DD 想要最大化:买糖果的愉悦度买糖果的花费之差(xx 与 yy 的差即为 x−yx−y),请你帮他求出这个最大值。

输入格式

第一行两个空格隔开的整数 n,Wn,W,表示每家商店中的糖果数目以及每颗糖果的花费。

第二行 nn 个空格隔开的整数 A1,A2,⋯,AnA1,A2,⋯,An,表示第一家商店中的糖果的愉悦度。

第三行 nn 个空格隔开的整数 B1,B2,⋯,BnB1,B2,⋯,Bn,表示第二家商店中的糖果的愉悦度。

保证输入的 {A}{A} 和 {B}{B} 均按照从小到大的顺序排列。

输出格式

输出一行一个整数,表示这个差值的最大值。

样例输入 1

4 10
12 14 16 19
14 15 20 37

样例输出 1

5

样例解释 1

最优方案为购买第一家商店中,愉悦度为 1616 和 1919 的两颗糖果,以及第二家商店中愉悦度为 3737 的糖果。

如果选择第一家商店的袋子,那么愉悦度之和为 3535;如果选择第二家商店的袋子,那么愉悦度之和为 3737;因此这种购买方案的愉悦度为 min{35,37}=35min{35,37}=35。

购买三颗糖果的代价为 3×10=303×10=30,所以差值为 35−30=535−30=5。

可以证明不存在更优的方案,所以答案为 55。

样例输入 2 & 3 & 4 & 5

见下发文件 ex_candy2.in/outex_candy3.in/outex_candy4.in/out 以及 ex_candy5.in/out

样例数据

数据规模与约定

本题共 2020 个测试数据,每个测试数据 55 分。

对于前 15%15% 的测试数据,n≤5n≤5;
对于另 15%15% 的测试数据,n≤10n≤10;
对于另 15%15% 的测试数据,n≤50n≤50;
对于另 15%15% 的测试数据,n≤200n≤200;
对于另 15%15% 的测试数据,n≤1000n≤1000;
对于另 15%15% 的测试数据,n≤5000n≤5000;
对于 100%100% 的测试数据,1≤n≤1051≤n≤105,1≤Ai,Bi,W≤1061≤Ai,Bi,W≤106。对于任意 1≤i<n1≤i<n,有 Ai≤Ai+1Ai≤Ai+1 且 Bi≤Bi+1Bi≤Bi+1。

时间限制:2s2s

空间限制:512MB

做法:ans=max(min(q[i],p[i]),w*(i+j)),q,p分别表示a,b从大到小时的前缀和,我们可以枚举其中一个,然后二分另一个。

 #include <cstdio>
#include <iostream>
#include <cstring>
#define N 100107
#define LL long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
int n,w,a[N],b[N];
LL ans,qa[N],qb[N]; inline int read(){
int s=;
char ch=getchar();
for(;ch<''||ch>'';ch=getchar());
for(;ch>=''&&ch<='';s=s*+ch-'',ch=getchar());
return s;
} inline LL max(LL a,LL b){
return a>b?a:b;
} inline LL min(LL a,LL b){
return a<b?a:b;
} void Init(){
n=read();w=read();
rep(i,,n) a[i]=read();
rep(i,,n) b[i]=read();
rep(i,,n) qa[i]=qa[i-]+a[n-i+],qb[i]=qb[i-]+b[n-i+];
} void Work(){
rep(i,,n){
int l=,r=n;
while(l<r){
int mid=(l+r)>>;
if (qb[mid]>=qa[i]) r=mid;
else l=mid+;
}
ans=max(min(qa[i],qb[l])-w*(i+l),ans);
}
rep(i,,n){
int l=,r=n;
while(l<r){
int mid=(l+r)>>;
if (qa[mid]>=qb[i]) r=mid;
else l=mid+;
}
ans=max(min(qb[i],qa[l])-w*(i+l),ans);
}
printf("%lld",ans);
} int main(){
Init();
Work();
}

NOIP模拟 candy的更多相关文章

  1. NOI.AC NOIP模拟赛 第一场 补记

    NOI.AC NOIP模拟赛 第一场 补记 candy 题目大意: 有两个超市,每个超市有\(n(n\le10^5)\)个糖,每个糖\(W\)元.每颗糖有一个愉悦度,其中,第一家商店中的第\(i\)颗 ...

  2. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  3. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  4. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  5. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  6. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  7. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  8. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  9. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

随机推荐

  1. checkpoint(sqlserver数据库检查点)

    关于检查点的解释:   出于性能方面的考虑,数据库引擎对内存(缓冲区缓存)中的数据库页进行修改,但在每次更改后不将这些页写入磁盘.相反,数据库引擎定期发出对每个数据库的检查点命令.“检查点”将当前内存 ...

  2. String, StringBuffer and StringBuilder

    一 String 概述: String 被声明为 final,因此它不可被继承. 在 Java 8 中,String 内部使用 char 数组存储数据. public final class Stri ...

  3. Linux --防火墙(一)

    基本组成 表: filter:用来对数据包进行过滤,根据具体的规则要求决定如何处理一个数据包.表内包含三个链,即INOUT.FORWARD.OUTPUT nat表:主要用来修改数据包的IP地址.端口号 ...

  4. nginx中的location匹配规则

    概述: 1. location在nginx配置文件中的作用是根据用户请求的URI来执行不同的应用. 2.URI的定义:标识.定位任何资源的字符串 协议://域名/目录a/目录b/文件c http:// ...

  5. 团队第三次scrum

    长大一条龙之课表查询 一.设计概要 本次内容主要是实现了长大一条龙系统的课表查询功能,我们的这个项目严格遵守MVC架构,采用前后端分离的策略.我们将课表查询分为二层,DAO层:负责与数据进行交互,读写 ...

  6. 48. Rotate Image (matrix retation, transpose) Amazon problem

    You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). ...

  7. 发送请求获取响应内容(c#)

    C#请求url,获取响应的脚本 public string ResultOfApi(string url) { //发送请求 HttpWebRequest request = null; HttpWe ...

  8. Jmeter入门10 jmeter加密串处理方式2:BeanShell PreProcessor

    上一个博客讲了方式一:函数助手__digest加密,BeanShell PreProcessor也可以用java代码进行处理 线程组.参数.请求都直接使用上一个博客的. 第一步 添加BeanShell ...

  9. 【[NOI2018]你的名字】

    题目 可能是一个乱搞做法,同时也跪求有人能帮我分析一下复杂度 还是先来看比较简单的\(68pts\),也就是\(l=1,r=|S|\)的情况 我们可以直接把\(S\)串和所有的\(T\)串一起建一个广 ...

  10. 【[HAOI2011]Problem c】

    好题啊 先考虑一些如何判掉无解的情况 我们开一个桶,存一下每个编号有多少个人必须选,之后做一个后缀和,之后我们扫一遍,如果一旦有一个后缀和\(pre[i]\)超过\(n-i+1\)就不合法了,因为我们 ...