正题

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1314


题目大意

有nnn个石头,mmm个区间,对于每个WWW有一个YYY。
Y=∑i=0n((∑j=liri(wi>=w)∗vi)∗(∑j=liri(wi>=w)))Y=\sum_{i=0}^n((\sum_{j=l_i}^{r_i}(w_i>=w)*v_i)*(\sum_{j=l_i}^{r_i}(w_i>=w)))Y=i=0∑n​((j=li​∑ri​​(wi​>=w)∗vi​)∗(j=li​∑ri​​(wi​>=w)))
求一个WWW,使得∣S−Y∣|S-Y|∣S−Y∣最小。


解题思路

二分WWW,前缀和处理。


codecodecode

#include<cstdio>
#include<algorithm>
#include<cctype>
#define ll long long
#define N 200001
#define V 107
using namespace std;
ll read() {ll x=0,f=1; char c=getchar();while(!isdigit(c)) {if(c=='-')f=-f;c=getchar();}while(isdigit(c)) x=(x<<1)+(x<<3)+c-48,c=getchar();return x*f;
}
void print(ll x){if (x>9) print(x/10); putchar(x%10+48); return;
}
ll n,m,S,num[N],ans[N],l[N],r[N],mins,answer,w[N],v[N];
ll check(ll x){ll sum=0;for(ll i=1;i<=n;i++){ans[i]=ans[i-1]+(w[i]<x?0:v[i]);num[i]=num[i-1]+(w[i]>=x);}//前缀和for(ll i=1;i<=m;i++)sum+=(ans[r[i]]-ans[l[i]-1])*(num[r[i]]-num[l[i]-1]);return sum;
}//判断
int main()
{//printf("%dKb",(sizeof(num)+sizeof(ans)+)/1024);n=read();m=read();S=read();for(ll i=1;i<=n;i++)w[i]=read(),v[i]=read();for(ll i=1;i<=m;i++)l[i]=read(),r[i]=read();ll w;answer=1e18;ll ls=1,rs=1e12;//二分while(ls<=rs){ll mid=(ls+rs)/2,w;if((w=check(mid))<S) rs=mid-1;else ls=mid+1;answer=min(answer,abs(S-w));}print(answer);
}

P1314,jzoj3028-聪明的质监员【二分答案,前缀和】相关推荐

  1. NOIP 2011 聪明的质检员-二分答案

    先解释一下这个式子: 就是说如果区间[Li, Ri] 中 wj>=w的个数 乘以 所有的wj>=w的价值的和. 那么我们可以二分w的值,通过Y与S的值来调整w, 具体来讲,只要当下的Y大于 ...

  2. 聪明的质监员 2011年NOIP全国联赛提高组(二分+前缀和)

    聪明的质监员 2011年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold   题目描述 Description 小 T 是一名质量监督员, ...

  3. NOIP2011聪明的质监员题解

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

  4. 聪明的质检员 二分验证答案

    https://www.luogu.org/problem/show?pid=1314#sub     ←  题目自己拿 QAQ 题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产 ...

  5. P8198 [传智杯 #4 决赛] 背单词的小智 二分答案+前缀和

    题面: 题目链接 思路: 太久没做题了,手有点生,题目的意思是求最大值的最小值 所以考虑二分答案 代码: #include <bits/stdc++.h> using namespace ...

  6. P1314 聪明的质监员(前缀和+二分)

    https://www.luogu.org/problem/P1314 题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的 ...

  7. 【洛古 P1314】[NOIP2011 提高组] 聪明的质监员

    题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n n n 个矿石,从 1 1 1 到 n n n 逐一编号,每个矿石都有自己的重量 w i w_i wi​ 以及价值 v ...

  8. [NOIP2011]聪明的质监员

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

  9. NOIP2011 聪明的质监员

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

最新文章

  1. 如何做一名专业的软件测试工程师
  2. 有望取代Spark,Michael Jordan和Ion Stoica提出下一代分布式实时机器学习框架Ray牛在哪?...
  3. 17、【 商品管理模块开发】——后台商品图片的springmvc和富文本上传以及ftp文件服务器的开发...
  4. P6134-[JSOI2015]最小表示【bitset,拓扑排序】
  5. javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法)
  6. cf 1060e 树形dp 树上任意两点的距离和
  7. C++工作笔记-对继承的进一步认识
  8. 动态sql之各种标签的使用以及详细配置
  9. Unity 序列化的问题
  10. .net core webapi 导出excel(两种方式EPPLUS、NPOI),返回下载地址或文件流
  11. 极限中0除以常数_0的美好
  12. C++类的常数据成员和常成员函数
  13. jdk8新特性之出现This inspection finds all usages of methods that have @since tag in their documentation.
  14. Win32窗口--XBox游戏手柄--C++--方向轮和按键捕获
  15. 视频监控摄像头直播主要应用领域分析
  16. 人脸识别技术及实现思路
  17. 码元传输速率计算及运用
  18. 大数据在车联网行业的实践与应用
  19. c语言扫雷游戏计时功能_做游戏,学编程(C语言) 20 扫雷
  20. 程序员 面试如何介绍自己

热门文章

  1. js请求结果拦截机器_CefSharp请求资源拦截及自定义处理
  2. qt客户端连接服务器不响应,qt判断tcp客户端是否连接服务器
  3. php 覆盖相同键的值,php - PHP数组使用相同的字符串键组合值 - SO中文参考 - www.soinside.com...
  4. java 运行环境注册表_Java运行环境与Windows注册表
  5. linux应用与管理,Linux操作系统应用与管理
  6. java自动随机字符_java随机字符生成工具
  7. 群同态基本定理证明_群论(7): 群代数, 群表示基础
  8. python回到本次循环开头_Python中,当一个while循环判断为false,结束这个循环的时候,怎么进入到下一个循环中?...
  9. android 文件 c语言 jni,Android jni 调用的so文件一个函数的反汇编 高手来看看
  10. java 非法操作异常_java – 空结果集上的非法操作