$Luogu$

$Sol$

首先$W$一定是某个$w_i$.于是一种暴力方法就出炉了,枚举$W$再计算.

注意到,满足$S-Y$的绝对值最小的$Y$只可能是两种,一种是$<S$的最大的$Y$,一种是$>S$的最小的$Y$.那就分别求出来叭.分别求的时候这个$W$的值是可以二分的.但是这样并不能$A$掉这题,因为$check$的复杂度仍然是$O(NM)$的.看了题解之后发现$check$可以用前缀和吖,觉得很巧妙$qwq$.这样下来$check()$的复杂度变成$O(N+M).$

$Code$

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
#define il inline
#define Rg register
#define go(i,a,b) for(Rg int i=a;i<=b;++i)
#define yes(i,a,b) for(Rg int i=a;i>=b;--i)
#define mem(a,b) memset(a,b,sizeof(a))
#define int long long
#define db double
#define inf 2147483647
using namespace std;
il int read()
{
Rg int x=0,y=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')y=-1;c=getchar();}
while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+c-'0';c=getchar();}
return x*y;
}
const int N=200010;
int n,m,S,as,minw=inf,maxw,sn[N],sv[N];
struct nd1{int w,v;}a[N];
struct nd2{int l,r;}b[N];
il int calc(int x)
{
Rg int ret=0;
mem(sn,0);mem(sv,0);
go(i,1,n)
if(a[i].w>=x)sn[i]=sn[i-1]+1,sv[i]=sv[i-1]+a[i].v;
else sn[i]=sn[i-1],sv[i]=sv[i-1];
go(i,1,m)
{
Rg int l=b[i].l,r=b[i].r;
ret+=(sn[r]-sn[l-1])*(sv[r]-sv[l-1]);
}
return ret;
}
il int ef1()
{
Rg int l=minw,r=maxw,mid,y,ret;
while(l<=r)
{
mid=(l+r)>>1;
y=calc(mid);
if(y<=S)ret=y,r=mid-1;
else l=mid+1;
}
return ret;
}
il int ef2()
{
Rg int l=minw,r=maxw,mid,y,ret;
while(l<=r)
{
mid=(l+r)>>1;
y=calc(mid);
if(y>=S)ret=y,l=mid+1;
else r=mid-1;
}
return ret;
}
main()
{
n=read(),m=read(),S=read();
go(i,1,n)a[i]=(nd1){read(),read()},minw=min(minw,a[i].w),maxw=max(maxw,a[i].w);
go(i,1,m)b[i]=(nd2){read(),read()};
Rg int y1=ef1(),y2=ef2();
as=min(abs(y1-S),abs(y2-S));
printf("%lld\n",as);
return 0;
}

随机推荐

  1. Laravel的请求声明周期

    声明周期概述# 开始# public/index.php 文件是所有对Laravel应用程序的请求的入口点.而所有的请求都是经由你的Web服务器(Apache/Nginx) 通过配置引导到这个文件.i ...

  2. OpenStack组件系列☞horizon搭建

    第一步:部署horizon环境: 安装部署memcache 安装软件包 yum install memcached python-memcached 启动memcache并且设置开机自启动 syste ...

  3. Resharper 如何把类里的类移动到其他文件

    有时候,看到一个类里有很多类,需要把他移动其他文件 假如有一个类 class A { class B { } } 如何把 B 移动文件 B里? 一般使用 快捷键是 Resharper 的快捷键,如果不 ...

  4. 21Hash算法以及暴雪Hash

    一:哈希表简介 哈希表是一种查找效率极高的数据结构,理想情况下哈希表插入和查找操作的时间复杂度均为O(1),任何一个数据项可以在一个与哈希表长度无关的时间内计算出一个哈希值(key),然后在常量时间内 ...

  5. php 位运算 3<<2;

  6. python selenium 处理悬浮窗口(baidu tj_more)

    python selenium 处理悬浮窗口 from selenium.webdriver.common.action_chains import ActionChainsActionChains( ...

  7. hdu 3938 Portal (prim+离线)

    Problem - 3938 题意是要求出给定权值下,满足要求的点对的数目.所谓的要求是,给出两点,之间会有很多路径,这个点对的最小距离是众多路径中,最短的一条路径的长度,路径长度是路径上最长边的长度 ...

  8. H3C 用交换机扩展以太网拓扑

  9. Python--day40--datetime,socketserver,Threading模块分别是哪些模块的高层模块

  10. Python--day40线程理论

    1,进程: