题目传送门

讲真,既然质监员这么聪明,为什么要让我们帮他设计程序?

所以还是叫ZZ的质检员吧

其实,我最想说的,不是这个题,而是这个\(\Sigma\)(一见 \(\Sigma\) 就懵逼系列)

这个题的式子是这样的:

嗯,它的意思是:在\(L_i\)到\(R_i\)这段区间里,合法的矿石的数量\(\times\)合法矿石的总价值

接下来就是这道题的思路了,知道这道题是二分后,这道题还是挺简单的,注意一下\(\tt{long\;long}\)的细节就可以了

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
ll read(){
    ll k=0; char c=getchar();
    for(;c<'0'||c>'9';) c=getchar();
    for(;c>='0'&&c<='9';c=getchar())
      k=(k<<3)+(k<<1)+c-48;
    return k;
}
ll sum[200010],ans=999999999999999999LL;
int cnt[200010],v[200010],w[200010],l[200010],r[200010];
int h=100000000,t;
int main(){
    int n=read(),m=read(); ll s=read();
    for(int i=1;i<=n;i++)
        w[i]=read(),v[i]=read(),h=min(w[i],h),t=max(w[i],t);
    for(int i=1;i<=m;i++)
        l[i]=read(), r[i]=read();
    h--, t++;
    while(h<t){
        int mid=(h+t)>>1;
        for(int i=1;i<=n;i++){
            cnt[i]=cnt[i-1]; sum[i]=sum[i-1];
            if(w[i]>=mid) cnt[i]++,sum[i]+=v[i];
        }
        ll y=0;
        for(int i=1;i<=m;i++){
            y+=(cnt[r[i]]-cnt[l[i]-1])*(sum[r[i]]-sum[l[i]-1]);
        }
        y=s-y;
        if(llabs(y)<ans) ans=llabs(y);
        if(y<=0) h=mid+1;
        else t=mid;
    }
    cout<<ans;

    return 0;
}

Noip2011提高组 聪明的质监员的更多相关文章

  1. Luogu P1314 [NOIP2011 提高组] 聪明的质监员

    P1314 [NOIP2011 提高组] 聪明的质监员 题意 题目描述 给定\(n\)个物品,给定每个物品的 重量 \(w_i\) 和 价值 \(v_i\) 给定一个标准值 \(s\) 以及一个参数 ...

  2. NOIP2011提高组 聪明的质监员 -SilverN

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

  3. NOIP2011 提高组 聪明的质监员(二分+前缀和)

    看到这道题,应该都能想到用二分,那问题是怎么去判定呢? 我们考虑用前缀和(a1统计w,a2统计v),枚举每个矿石,,当前判定的值是x,如果该矿石的w>=x,a1[i]=a1[i-1]+1,a2[ ...

  4. [NOIp2011] luogu P1314 聪明的质监员

    题目描述 点进去看吧,说的不能再清楚了. Solution 看到数据规模不难想到二分 WWW,然后用个前缀和优化一下即可.注意上下界. #include<cstdio> #include& ...

  5. 洛谷P1314 [NOIP2011提高组Day2T2] 聪明的质监员

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

  6. Codevs 1138 聪明的质监员 2011年NOIP全国联赛提高组

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

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

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

  8. [NOIP2011提高组day2]-2-聪明的质监员

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

  9. NOIP2011聪明的质监员题解

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

随机推荐

  1. TP5之页面跳转样式

    1.效果图 2.上干货 为了增加对移动设备的支持,在  /application/common.php加入以下函数: function isMobile() { if (isset ($_SERVER ...

  2. lightoj1060【康托逆展开】

    可以先看些资料:http://blog.csdn.net/keyboarderqq/article/details/53388936 参考谷巨巨:http://blog.csdn.net/azx736 ...

  3. [Xcode 实际操作]八、网络与多线程-(2)使用UIApplication对象打开网页

    目录:[Swift]Xcode实际操作 本文将演示如何使用应用程序单例对象,打开指定的网页. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKi ...

  4. IT兄弟连 JavaWeb教程 Servlet会话跟踪 Session技术

    Servlet提供了HttpSession接口,该接口提供了一种跨多个页面请求或访问网站时识别用户以及存储有关用户信息的方式. Servlet容器使用这个接口来创建一个HTTP客户端和HTTP服务器之 ...

  5. TCP协议怎么关闭?

    TCP协议是一个面向连接的传输层协议,那如果避免遭到破坏,该怎样正确关闭呢?一般正常关闭TCP连接是采用四次挥手机制,其实主体就两个,客户端和服务器交互传递,且连续四次,传递的东西是FIN数据包和AC ...

  6. python 函数 之 用户注册register()

    db_path='db.txt' #定义默认文件路径,方便修改def get_uname(): while True: uname=input('请输入用户名:').strip() if uname. ...

  7. Libre OJ P2332「JOI 2017 Final」焚风现象【差分思想】By cellur925

    题目传送门 这道题开始看起来会很晕...\(qwq\).首先我们要明确题目中的海拔&&温度.温度是受海拔影响的,每次改变的是海拔,我们求的是温度. 我们开始读入的时候便可以处理出开始\ ...

  8. mysql 配置大小写敏感后不能重启

    [问题现象] 在mysql的配置文件my.cnf配置lower_case_table_names=1后不能重启mysql,提示mysql.serviceJob for mysql.service fa ...

  9. typescript学习笔记(三)---接口

    关于第二章的学习笔记是变量声明. 接口:TypeScript的核心原则之一是对值所具有的结构进行类型检查. 它有时被称做“鸭式辨型法”或“结构性子类型化”. 在TypeScript里,接口的作用就是为 ...

  10. Eclipse - 安装了jd-eclipse插件后依然无法反编译类文件

    问题 Eclipse在安装了jd-eclipse插件后依然无法反编译类文件,这个问题是因为没有修改默认的类文件查看器. 解决方法 修改默认的类文件查看器为jd-eclipse Window -> ...