题目来源:https://www.luogu.org/problem/show?pid=1314

对w进行二分答案。

处理过程中用前缀和优化。

注意要二分两次,一次是w<s时s-w的最小值,另一次是w>s时w-s的最小值。

代码:

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <cmath>
#define ll long long
using namespace std;
const int maxn=2e6+10;
ll w[maxn],v[maxn];
ll sum[maxn],e[maxn];
ll start[maxn],end[maxn];
int main()
{ios::sync_with_stdio(false);ll n,m,s;cin>>n>>m>>s;for(int i=1;i<=n;i++)cin>>w[i]>>v[i];for(int i=1;i<=m;i++)cin>>start[i]>>end[i];ll l=0,r=1e16;ll ans=1e16;while(l<r){memset(sum,0,sizeof(sum));memset(e,0,sizeof(e));ll mid=(l+r+1)/2;for(int i=1;i<=n;i++){sum[i]=sum[i-1];e[i]=e[i-1];if(w[i]>=mid){sum[i]+=v[i];e[i]++;}}ll tot=0;for(int i=1;i<=m;i++)tot+=(e[end[i]]-e[start[i]-1])*(sum[end[i]]-sum[start[i]-1]);if(tot>s||(s-tot)>=ans)r=mid-1;else l=mid;ans=min(ans,abs(tot-s));}l=0;r=1e16;while(l<r){memset(sum,0,sizeof(sum));memset(e,0,sizeof(e));ll mid=(l+r+1)/2;for(int i=1;i<=n;i++){sum[i]=sum[i-1];e[i]=e[i-1];if(w[i]>=mid){sum[i]+=v[i];e[i]++;}}ll tot=0;for(int i=1;i<=m;i++)tot+=(e[end[i]]-e[start[i]-1])*(sum[end[i]]-sum[start[i]-1]);if(s>tot||(s-tot)>=s)r=mid-1;else l=mid;ans=min(ans,abs(tot-s));}cout<<ans;return 0;
}

NOIP2011聪明的质检员相关推荐

  1. [NOIP2011]聪明的质检员

    [问题描述] 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有$n$个矿石,从 1 到$n$逐一编号,每个矿石都有自己的重量$w_i$以及价值$v_i$.检验矿产的流程是: 1. 给 ...

  2. NOIP2011 聪明的质检员 - 前缀和 - 二分

    这题需要操作w,使得y与s尽量接近 那么考虑到y可以比s小一点也可以大一点,可以分开考虑,若y < s 则尝试把y弄大一点, 这样就可以二分w,使y越来越接近s,并且实时记录最优解,也不用管最后 ...

  3. NOIP2011 聪明的质检员

    题目大意:小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1 到 n 逐一编号,每个矿石都有自己的重量 wi 以及价值 vi .检验矿产的流程是: 1 .给定m 个 ...

  4. NOIP2011 聪明的质检员 题解

    描述 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从1到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是: 1.给定m个区间[Li,Ri]: 2.选 ...

  5. 【NOIP2011】聪明的质检员

    2.聪明的质检员 (qc.cpp/c/pas) 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1 到 n 逐一编号,每个矿石都有自己的重量 wi 以及价值 vi. ...

  6. NOIP2011聪明的质监员题解

    631. [NOIP2011] 聪明的质监员 ★★   输入文件:qc.in   输出文件:qc.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述]  小 T 是一名质量 ...

  7. 二分+前缀和——聪明的质检员

    题目: 问题 F: [NOIP2011提]聪明的质监员(Day 2) 问题 F: [NOIP2011提]聪明的质监员(Day 2) 时间限制: 1 Sec  内存限制: 128 MB 53  解决: ...

  8. NOIP 2011 聪明的质检员

    题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: 1 .给定m 个区间[L ...

  9. 算法竞赛宝典 分治算法 聪明的质检员

    题目:聪明的质监员(qc.pas/cpp/in/out) 题目描述 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n 个矿石,从1到n 逐一编号,每个矿石都有自己的重量wi 以及价 ...

最新文章

  1. c 正则去除a以外的html,正则表达式:去除除SRC以外的HTML属性
  2. android w700
  3. js解决异步的方法汇总
  4. 运维分级发布_华为杨超斌发布面向“1+N”目标网的5G全系列解决方案
  5. Angular 服务器端渲染的学习笔记(一)
  6. python继承方式是基于原型吗_【Python】python 普通继承方式和super继承方式
  7. python实现定位附近的_c#教程之使用GPS经纬度定位附近地点(某一点范围
  8. 计算机技能培训课程感悟,计算机技能培训心得.doc
  9. 【python 监控报警】python 免费短信报警和电话报警
  10. Java-底层建筑-JVM-第3篇-StringTable
  11. 根文件系统的构建与分析(一)之流程分析 http://blog.csdn.net/jianchi88/article/details/7682901
  12. 1879: Intersection
  13. 桌面上的计算机图标的功能是什么,桌面上计算机图标不见了的解决方法教程
  14. hypermesh和lsdyna联合仿真计算某汽车座椅进行的头冲吸能实验
  15. (最小生成树)Codeforces Educational Codeforces Round 9 Magic Matrix
  16. 手机网页应用的交互设计
  17. 黑苹果重置NVRAM方法,无法进入系统,丢失引导
  18. 根据物理公式在Unity中实现抛物线运动.2
  19. 解决项目编译的target目录下丢失xml文件
  20. 热词解析:“脑残”英语怎么说?

热门文章

  1. 电路板损坏导致电脑识别不到硬盘怎么恢复
  2. 控制理论结构图——一目了然全面了解控制理论(这个已不是最新的)
  3. Nike+ Fuelband SE不能激活无法连接的请看这里。
  4. CLIPDraw:基于CLIP的text-to-vector生成器
  5. 【我的Android进阶之旅】 Android Studio插件之Jenkins插件介绍
  6. activemq配置wss协议
  7. oracle基础|oracle创建序列(creating sequences)|oracle创建视图(creating view)的用法
  8. 计算机管理看板方式,Kanban|看板-现场管理-太友科技专业提供现场可视化整体解决方案...
  9. VUEcli3设置页签图标
  10. 智慧农业解决方案-最新全套文件