NOIP2011 Day2 T2 聰明的質監員
W越大,Y越小,所以可以二分W使Y接近S。
少用min、abs可以讓思路更清晰。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
using namespace std;
const int maxn = 200010;
int n, m, num[maxn];
int mw;
long long s, sum[maxn], tot;
struct node1{
int w, v;
} a[maxn];
struct node2{
int li, ri;
} b[maxn];
long long judge(int x){
memset(sum, 0, sizeof(sum));
memset(num, 0, sizeof(num));
for(int i = 1; i <= n; i++){
sum[i] = sum[i-1], num[i] = num[i-1];
if(a[i].w > x){
sum[i] += a[i].v;
num[i]++;
}
}
tot = 0;
for (int i = 1; i <= m; i++)
tot += (sum[b[i].ri] - sum[b[i].li-1])*(num[b[i].ri] - num[b[i].li-1]);
return tot;
}
int main(){
cin >> n >> m >> s;
for(int i = 1; i <= n; i++){
cin >> a[i].w >> a[i].v;
mw = max(mw, a[i].w);
}
for (int i = 1; i <= m; i++)
cin >> b[i].li >> b[i].ri;
long long ans = s;
int l = 0, r = mw + 1;
while(l < r){
int mid = (l+r) >> 1;
long long now = judge(mid);
if(now > s){
l = mid + 1;
if(ans > now - s) ans = now - s;
}
else if(now < s){
r = mid;
if(ans > s - now) ans = s - now;
}
else{
cout << "0" << endl;
return 0;
}
}
cout << ans << endl;
return 0;
}
相關推薦
NOIP2011 Day2 T2 聰明的質監員
W越大,Y越小,所以可以二分W使Y接近S。 少用min、abs可以讓思路更清晰。 #include<cstdio> #include<cstring> #include&
[二分]NOIP2011 day2 T2 聰明的質檢員
聰明的質檢員 From 西部314 背景 Background NOIP2011 day2 第二題 描述 Description 小T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 n 個礦石,從 1到n 逐一編號,每個礦
全國資訊學奧林匹克聯賽(NOIP2011)複賽 提高組 day2 T2 聰明的質監員
講過二分已經一段時間,現在老師又找一道二分題來練手#A#,起初就是對兩個大大的西格瑪有點興趣,做起來發現這題出題人還是很心機的啊啊! 現在來一波題目: 2.聰明的質監員 (qc.cpp/c/pas) 【問題描述】 小 T 是一名質量監督員,最近
noip2011 day2-2 聰明的質監員
題目描述 小 T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有n 個礦石,從1 到n 逐一編號,每個礦石都有自己的重量wi 以及價值vi。檢驗礦產的流程是: 1、給定m 個區間[Li
[NOIP2011]聰明的質監員 D2 T2 二分答案
Time Limit: 1 Sec Memory Limit: 128 MB Description 小 T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有n 個礦石,從1到n 逐一編號,每個礦石都有自己的重量wi 以及價值vi。
二分查找前綴和(洛谷1314聰明的質監員NOIP2011提高組)
ron min 最小值 一個數 -s 判斷 inf bre sync 小T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 n 個礦石,從 1到n 逐一編號,每個礦石都有自己的重量 wi 以及價值vi 。檢驗礦產的流程是: 1 、給定m 個區間[Li,Ri
NOIP2011聰明的質監員題解
輸入輸出 std under pri efault abs iostream using nbsp 631. [NOIP2011] 聰明的質監員 ★★ 輸入文件:qc.in 輸出文件:qc.out 簡單對比時間限制:1 s 內存限制:128 MB 【問題描述
luoguP1314 聰明的質監員 題解(NOIP2011)
() main include ostream bsp algo namespace lin etc P1314 聰明的質監員 題目 #include<iostream> #include<cstdlib> #include<cstdio&g
NOIP2011聰明的質監員
檢驗 dig mem 代碼 for bsp ase mes 又是 小T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 nn 個礦石,從 11到nn逐一編號,每個礦石都有自己的重量 w_iwi? 以及價值v_ivi? 。檢驗礦產的流程是: 1 、給定mm個區間
[NOIP2011真題]聰明的質監員
題目背景 NOIP2011 DAY2 試題 2 。 題目描述 小T是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 n 個礦石,從 1 到 n 逐一編號,每個礦石都有自己的重量 wi 以
[noip2011]聰明的質監員
題目描述 Description 小 T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有n 個礦石,從1到n 逐一編號,每個礦石都有自己的重量wi 以及價值vi。檢驗礦產的流程是:見圖 若這批礦產的檢驗結果與所給標準值S 相差太多,就需要再去檢驗
離散+二分+字首和 [NOIP2011] 聰明的質監員
[NOIP2011] 聰明的質監員 時間限制:1 s 記憶體限制:128 MB 【問題描述】 小 T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有n個礦石,從 1 到n逐一編號,每個礦石都有自己的重量wi以及價值vi。檢驗礦產的流程是: 1.
Code[vs] 1138— NOIP2011 聰明的質監員 (二分答案+字首和)
題目連結 題意: 有n個礦石,每個礦石有重量和價值兩個引數,質檢員可以調節一個最低重量w,每個區間的檢查值為該區間內重量>=w的礦石價值和 *(重量>=w的個數),求m個區間的檢查值之和 與 標準值s之差的絕對值的最小值 題解: 檢查值之和 只和 w 有
洛谷 P1314 [NOIP2011 D2T2] 聰明的質監員
題目描述 小T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 n 個礦石,從 1到n 逐一編號,每個礦石都有自己的重量 wi 以及價值vi 。檢驗礦產的流程是: 1 、給定m 個區間[Li,Ri]; 2 、選出一個引數 W; 3 、對於一個區間[Li
noip2011 聰明的質監員 (二分+字首和處理+讀入優化)
第一行包含三個整數n,m,S,分別表示礦石的個數、區間的個數和標準值。 接下來的n行,每行2個整數,中間用空格隔開,第i+1行表示i號礦石的重量wi和價值vi 。 接下來的m行,表示區間,每行2個整數,中間用空格隔開,第i+n+1行表示區間[Li,Ri]的兩個端點Li和Ri。注意:不同區間可能重合或相互重疊
[NOIP2011] 聰明的質監員 二分+字首和
考試的時候打的二分但沒有用字首和維護。但是有個小細節手誤打錯了結果掛掉了。 絕對值的話可能會想到三分,但是注意到w增大的時候y是減小的,所以單調性很明顯,用二分就可以。但注意一個問題,就是二分最後的結果不一定是最優的,只是在它屬於的符號裡是最優的,所以需要最後存正負的最優解
二分查詢字首和(洛谷1314聰明的質監員NOIP2011提高組)
小T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 n 個礦石,從 1到n 逐一編號,每個礦石都有自己的重量 wi 以及價值vi 。檢驗礦產的流程是: 1 、給定m 個區間[Li,Ri]; 2 、選出一個引數 W; 3 、對於一個區間[Li,Ri],計算礦石在這
P1314 聰明的質監員
fin sin 數據 color 空格 tmp ... 個數 pac P1314 聰明的質監員 題目描述 小T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 n 個礦石,從 1到n 逐一編號,每個礦石都有自己的重量 wi 以
luogu P1314 聰明的質監員 x
sca 簡單 最小 最小值 第一個 其中 d+ 計算 long P1314 聰明的質監員(至於為什麽選擇這個題目,可能是我覺得比較好玩唄) 題目描述 小T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 n 個礦石,從 1到n 逐一編號,每個礦石都有自己的
luogu P1314 聰明的質監員
相互 name 二分 upload names 格式 註意 ++ 負責 題目描述 小T 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 n 個礦石,從 1到n 逐一編號,每個礦石都有自己的重量 wi 以及價值vi 。檢驗礦產的流程是: 1 、給定m 個區間[