luoguP1314 聪明的质监员 题解(NOIP2011)
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<ctime>
#include<queue>
#include<stack>
#define rg register
#define lst long long
#define N 200050
#define Inf 2147483647
using namespace std; int n,m,mx=-,mn=Inf;
lst res,s,ss;
lst ans=;
int w[N],v[N],l[N],r[N];
lst tot[N],num[N]; inline lst read()
{
rg lst s=,m=;rg char ch=getchar();
while(ch!='-'&&(ch<''||ch>''))ch=getchar();
if(ch=='-')m=-,ch=getchar();
while(ch>=''&&ch<='')s=(s<<)+(s<<)+ch-'',ch=getchar();
return s*m;
} inline lst a_b_s(rg lst t){return t>=?t:-t;}
inline bool check(rg int lim)
{
res=,ss=;
memset(tot,,sizeof(tot));
memset(num,,sizeof(num));
for(rg int i=;i<=n;++i)
{
num[i]=num[i-],tot[i]=tot[i-];
if(w[i]>=lim)num[i]++,tot[i]+=v[i];
}
for(rg int i=;i<=m;++i)
ss+=(num[r[i]]-num[l[i]-])*(tot[r[i]]-tot[l[i]-]);
res=a_b_s(ss-s);
if(ss>s)return ;
else return ;
} int main()
{
n=read(),m=read(),s=read();
for(rg int i=;i<=n;++i)
{
w[i]=read(),v[i]=read();
mx=max(mx,w[i]),mn=min(mn,w[i]);
}
for(rg int i=;i<=m;++i)
l[i]=read(),r[i]=read();
rg int le=mn-,ri=mx+;
while(le<=ri)
{
rg int mid=(le+ri)>>;
if(check(mid))le=mid+;
else ri=mid-;
ans=min(ans,res);
}
cout<<ans<<endl;
return ;
}
luoguP1314 聪明的质监员 题解(NOIP2011)的更多相关文章
- 洛谷P1314 聪明的质监员 题解
题目 聪明的质监员 题解 这道题和之前Sabotage G的那道题类似,都是用二分答案求解(这道题还要简单一些,不需要用数学推导二分条件,只需简单判断一下即可). 同时为了降低复杂度,肯定不能用暴力求 ...
- NOIP2011聪明的质监员题解
631. [NOIP2011] 聪明的质监员 ★★ 输入文件:qc.in 输出文件:qc.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 小 T 是一名质量监督 ...
- [NOIP2011]聪明的质监员 题解
题目大意: 额--貌似蛮清晰的,就不赘述了. 思路: 首先不难发现M越大Y越小,因此可以二分答案(方向不要弄错),二分出最小的不小于S的Y即可.而计算Y时可用前缀和O(n+m)求得.两种边界情况也要考 ...
- 洛谷P1314 [NOIP2011提高组Day2T2] 聪明的质监员
P1314 聪明的质监员 题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: ...
- Luogu P1314 [NOIP2011 提高组] 聪明的质监员
P1314 [NOIP2011 提高组] 聪明的质监员 题意 题目描述 给定\(n\)个物品,给定每个物品的 重量 \(w_i\) 和 价值 \(v_i\) 给定一个标准值 \(s\) 以及一个参数 ...
- NC16597 [NOIP2011]聪明的质监员
NC16597 [NOIP2011]聪明的质监员 题目 题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 \(n\) 个矿石,从 \(1\) 到 \(n\) 逐一编号,每个矿 ...
- NOIP2011提高组 聪明的质监员 -SilverN
题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: 1 .给定m 个区间[L ...
- 【洛谷P1314】[NOIP2011]聪明的质监员
聪明的质监员 题目链接:https://www.luogu.org/problemnew/show/P1314 Y(W)随W的值增大而减小 二分W的值,找到最小的W使得Y(W)>S: 比较Y(W ...
- Codevs 1138 聪明的质监员 2011年NOIP全国联赛提高组
1138 聪明的质监员 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小 T 是一名质量监督员, ...
随机推荐
- UI库colorui的使用————小程序
UI库colorui的使用----小程序 把colorui文件放到你的小程序中 包含文件: icon.wxss+main.wxss+components(文件夹里有icon和一些组件)+animati ...
- elasticsearch 基础 —— URI搜索
URI搜索 可以通过提供请求参数使用URI来执行搜索请求.使用此模式执行搜索时,并非所有搜索选项都会暴露.这是一个例子: GET twitter/_search?q=user:kimchy 示例响应: ...
- vue动态设置Iview的多个Input组件自动获取焦点
1.html,通过ref=replyBox设置焦点元素,以便后续获取 // 动态设定自动获取焦点按钮 <p class="text-right text-blue fts14 ptb1 ...
- 前端移动开发--viewpoint
移动开发时,一般都会在头部加载这样一行meta标签 <meta name="viewport" content="width=device-width, initi ...
- Linux的运行级别和设置开机启动服务的方式
Linux的运行级别 什么是运行级别呢?简单点来说,运行级别就是操作系统当前正在运行的功能级别.级别是从0到6,具有不同的功能.这些级别定义在/ect/inittab文件中.这个文件是init程序寻找 ...
- javascript中数组元素删除方法splice,用在for循环中巨坑
一.demo splice: 该方法会改变自动原始数组长度 实例: var array = ["aa","dd","cc","aa ...
- django 添加分页功能的包
Django pagination based upon the core pagination module
- Halo(七)
@ControllerAdvice 对Controller进行"切面"环绕 结合方法型注解 @ExceptionHandler 用于捕获Controller中抛出的指定类型的异常, ...
- boost datetime
To create a date, use the class boost::gregorian::date 1. date #include <boost/date_time/gregoria ...
- springmvc的@ModelAttribute
1:作用:执行任何方法前都要先执行一下有这个标识的方法. 用途:表单回显的时候先从数据库中查询出来放到这个方法中. 1):模拟表单 <form action="first/testMo ...