Vijos P1740聰明的質檢員

2022-02-05 08:08:59 字數 2132 閱讀 2008

小 t 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有n個礦石,從1到n逐一編號,每個礦石都有自己的重量wi以及價值vi。檢驗礦產的流程是:

1、給定m個區間[li,ri];

2、選出乙個引數w;

3、對於乙個區間[li,ri],計算礦石在這個區間上的檢驗值yi

yi = ∑1*∑vj,j∈[li, ri]且wj ≥ w,j是礦石編號

這批礦產的檢驗結果y 為各個區間的檢驗值之和。即:y = ∑yi,i ∈[1, m]

若這批礦產的檢驗結果與所給標準值s相差太多,就需要再去檢驗另一批礦產。小t不想費時間去檢驗另一批礦產,所以他想通過調整引數w的值,讓檢驗結果盡可能的靠近標準值s,即使得s-y的絕對值最小。請你幫忙求出這個最小值。

第一行包含三個整數n,m,s,分別表示礦石的個數、區間的個數和標準值。

接下來的n行,每行2個整數,中間用空格隔開,第i+1行表示i號礦石的重量wi和價值vi 。

接下來的m行,表示區間,每行2個整數,中間用空格隔開,第i+n+1行表示區間[li,ri]的兩個端點li和ri。注意:不同區間可能重合或相互重疊。

輸出只有一行,包含乙個整數,表示所求的最小值。

5 3 15

1 52 5

3 54 5

5 51 5

2 43 3

10
1s樣例說明:當w選4的時候,三個區間上檢驗值分別為20、5、0,這批礦產的檢驗結果為25,此時與標準值s相差最小為10。

對於10%的資料,有1 ≤ n,m ≤ 10;

對於30%的資料,有1 ≤ n,m ≤ 500;

對於50%的資料,有1 ≤ n,m ≤ 5,000;

對於70%的資料,有1 ≤ n,m ≤ 10,000;

對於100%的資料,有1 ≤ n,m ≤ 200,000,0 < wi, vi ≤ 10^6,0 < s ≤ 10^12,1 ≤ li ≤ ri ≤ n。

noip2011提高組day2第二題

這道題目我們可以發現隨著w的增大,最後的y也是增大的,所以我們可以二分出最接近s的幾個w試一下。演算法複雜度是o(nlogw)的。是可以做的。

1

/*author:wnjxyk

*/2 #include3 #include4

using

namespace

std;

5const

int maxn=200000;6

long

long w[maxn+10],v[maxn+10];7

long

long num[maxn+10],vs[maxn+10];8

int l[maxn+10],r[maxn+10];9

long

long

s;10

intn,m;

11long

long

maxw;

12 inline long

long abs(long

long

x)16 inline long

long getans(int

x)else

26 num[i]+=num[i-1

];27 vs[i]+=vs[i-1

];28}29

long

long ans=0;30

for (int i=1;i<=m;i++)

33return

ans;34}

35int

main()else

48}

49long

long ans=abs(getans(left)-s);

50for (int i=left+1;i<=right;i++)

54 printf("

%lld\n

",ans);

55return0;

56 }

view code

vijos P1740 聰明的質檢員

題目大意 給你n個物品,每件物品有重量 w 和價值 v,給m個區間,和乙個標準值。n,m最大200000 要求找到乙個值x,使得m個所有區間的權值和與標準值的差的絕對值最小。單個區間權值計算公式 數目num 0,價值sum 0,若滿足 wi x 則 num,sum vi 單個區間權值為num sum...

聰明的質檢員

問題描述 小 t 是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有 n 個礦石,從 1 到 n 逐一編號,每個礦石都有自己的重量wi 以及價值vi 檢驗礦產的流程是 1.給定 m個區間 l i,ri 2.選出乙個引數 w 3.對於乙個區間 l i,ri 計算礦石在這個區間上的檢驗值yi y...

聰明的質檢員

題目描述 小t是一名質量監督員,最近負責檢驗一批礦產的質量。這批礦產共有n個礦石,從1到n逐一編號,每個礦石都有自己的重量wi以及價值vi。檢驗礦產的流程見圖。若這批礦產的檢驗結果與所給標準值s相差太多,就需要再去檢驗另一批礦產。小t不想費時間去檢驗另一批礦產,所以他想通過調整引數w的值,讓檢驗結果...