NOIP2011聪明的质检员
题目来源: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聪明的质检员相关推荐
- [NOIP2011]聪明的质检员
[问题描述] 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有$n$个矿石,从 1 到$n$逐一编号,每个矿石都有自己的重量$w_i$以及价值$v_i$.检验矿产的流程是: 1. 给 ...
- NOIP2011 聪明的质检员 - 前缀和 - 二分
这题需要操作w,使得y与s尽量接近 那么考虑到y可以比s小一点也可以大一点,可以分开考虑,若y < s 则尝试把y弄大一点, 这样就可以二分w,使y越来越接近s,并且实时记录最优解,也不用管最后 ...
- NOIP2011 聪明的质检员
题目大意:小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1 到 n 逐一编号,每个矿石都有自己的重量 wi 以及价值 vi .检验矿产的流程是: 1 .给定m 个 ...
- NOIP2011 聪明的质检员 题解
描述 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从1到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是: 1.给定m个区间[Li,Ri]: 2.选 ...
- 【NOIP2011】聪明的质检员
2.聪明的质检员 (qc.cpp/c/pas) 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1 到 n 逐一编号,每个矿石都有自己的重量 wi 以及价值 vi. ...
- NOIP2011聪明的质监员题解
631. [NOIP2011] 聪明的质监员 ★★ 输入文件:qc.in 输出文件:qc.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 小 T 是一名质量 ...
- 二分+前缀和——聪明的质检员
题目: 问题 F: [NOIP2011提]聪明的质监员(Day 2) 问题 F: [NOIP2011提]聪明的质监员(Day 2) 时间限制: 1 Sec 内存限制: 128 MB 53 解决: ...
- NOIP 2011 聪明的质检员
题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: 1 .给定m 个区间[L ...
- 算法竞赛宝典 分治算法 聪明的质检员
题目:聪明的质监员(qc.pas/cpp/in/out) 题目描述 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n 个矿石,从1到n 逐一编号,每个矿石都有自己的重量wi 以及价 ...
最新文章
- UNION 与 UNION ALL
- py-faster-rcnn + ZF 实现自己的数据训练与检测(二)
- PHP的global与GLOBAL
- kafka再均衡监听器测试
- 这两天,我们还没毕业
- php label,HTML的label标签
- 【葫芦娃团队】无人转会申请
- js日期格式化写法及获取当前日期年月日、上一月
- cobbler的搭建
- 设计中最困难的部分是决定设计什么
- The remote system refused the connection.
- Rust FFI 编程 - Rust 语言层面对 FFI 的支持
- 阿里云天气汇率API代码片段
- 微信跳转手机默认浏览器实现微信扫一扫功能扫码直接下载apk
- C语言计算个人所得税
- 双荧光素酶报告(Dual-Luciferase Reporter)实验介绍
- 腾讯云服务器操作系统TencentOS的正确安装方法
- python适用的操作系统是_python 操作系统和进程
- cortana连不上网络_Alexa,为什么Cortana仍在我的计算机上?
- Weixin4j微信开发网页授权获取openid案例
热门文章
- 设置FLASH的读写保护及解除—零死角玩转STM32-F429系列
- DOS 命令 批量注册指定文件下的所有DLL
- unity资源包分享
- 2023年互联网技术发展趋势浅析
- Vue写一个知乎日报
- nacos文件解析错误:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException
- java计算机毕业设计跨境电商网站源代码+数据库+系统+lw文档
- 运营商最新号码段 以及 手机号码的正则表达式判断
- 【应用多元统计分析】上机四五——主成分分析因子分析
- 中医诊所管理系统哪一类实用 ?