NOIP提高組2011 聰明的質監員

2021-07-16 01:11:23 字數 1068 閱讀 4952

題目:

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

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

2 、選出乙個引數 w;

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

這批礦產的檢驗結果y 為各個區間的檢驗值之和。即:y1+y2…+ym

若這批礦產的檢驗結果與所給標準值s 相差太多,就需要再去檢驗另一批礦產。小t

不想費時間去檢驗另一批礦產,所以他想通過調整引數w 的值,讓檢驗結果盡可能的靠近

標準值s,即使得s-y 的絕對值最小。請你幫忙求出這個最小值。

思路:二分:

#include

#include

#include

long

long w[200010],v[200010],r[200010],l[200010],a[200010],b[200010],n,m,s,max1,ans=100000000000;

long

long max(long

long a,long

long b)

long

long min(long

long a,long

long b)else

long

long p=0;

for(long

long i=1;i<=m;i++)p+=(a[r[i]]-a[l[i]-1])*(b[r[i]]-b[l[i]-1]);

return p;

}int main(void)

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

scanf("%lld%lld",&l[i],&r[i]);

long

long r1=1,l1=max1;

while(r1<=l1)else

}printf("%lld\n",ans);

return

0;}

NOIP 2011 提高組 聰明的質監員

二分 字首和 因為w有已知範圍,即 min 1,max 1 且它會y隨著w的增大而減小,隨著w的減小而增大,所以顯然可以二分。二分的時候區間肯定不能直接列舉了,對於乙個區間的求和以及滿足個數的求解,我們用2個字首和處理即可。可能你們有人會想題目是 s y 那麼二分是否能保證最優呢?實際上是可以的,當...

NOIP2011提高組 聰明的質監員

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

NOIP2011 tyvj1696 聰明的質檢員

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