题目来源: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. UNION 与 UNION ALL
  2. py-faster-rcnn + ZF 实现自己的数据训练与检测(二)
  3. PHP的global与GLOBAL
  4. kafka再均衡监听器测试
  5. 这两天,我们还没毕业
  6. php label,HTML的label标签
  7. 【葫芦娃团队】无人转会申请
  8. js日期格式化写法及获取当前日期年月日、上一月
  9. cobbler的搭建
  10. 设计中最困难的部分是决定设计什么
  11. The remote system refused the connection.
  12. Rust FFI 编程 - Rust 语言层面对 FFI 的支持
  13. 阿里云天气汇率API代码片段
  14. 微信跳转手机默认浏览器实现微信扫一扫功能扫码直接下载apk
  15. C语言计算个人所得税
  16. 双荧光素酶报告(Dual-Luciferase Reporter)实验介绍
  17. 腾讯云服务器操作系统TencentOS的正确安装方法
  18. python适用的操作系统是_python 操作系统和进程
  19. cortana连不上网络_Alexa,为什么Cortana仍在我的计算机上?
  20. Weixin4j微信开发网页授权获取openid案例

热门文章

  1. 设置FLASH的读写保护及解除—零死角玩转STM32-F429系列
  2. DOS 命令 批量注册指定文件下的所有DLL
  3. unity资源包分享
  4. 2023年互联网技术发展趋势浅析
  5. Vue写一个知乎日报
  6. nacos文件解析错误:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException
  7. java计算机毕业设计跨境电商网站源代码+数据库+系统+lw文档
  8. 运营商最新号码段 以及 手机号码的正则表达式判断
  9. 【应用多元统计分析】上机四五——主成分分析因子分析
  10. 中医诊所管理系统哪一类实用 ?