bzoj1071 雙指標 組隊

2021-08-16 08:27:58 字數 1485 閱讀 2502

description

nba每年都有球員選秀環節。通常用速度和身高兩項資料來衡量乙個籃球運動員的基本素質。假如一支球隊裡

速度最慢的球員速度為minv,身高最矮的球員高度為minh,那麼這支球隊的所有隊員都應該滿足: a * ( height – minh )

+ b * ( speed – minv ) <= c 其中a和b,c為給定的經驗值。這個式子很容易理解,如果乙個球隊的 球員速度和身高差距太大,會造成配合的不協調。 請問作為球隊管理層的你,在n名選秀球員中,最多能有多少名 符合條件的候選球員。

input

第一行四個數n、a、b、c 下接n行每行兩個數描述乙個球員的height和speed

output

最多候選球員數目。

sample input

4 1 2 10

5 1

3 2

2 3

2 1

sample output

hint

資料範圍: n <= 5000 ,height和speed不大於10000。a、b、c在長整型以內。

2016.3.26 資料加強 nano_ape 程式未重測

題解

好題啊毒瘤題啊思維題

全程%大佬

主要就是借助乙個思維。。先加入speed滿足條件的,後刪除height不滿足條件的。這樣就完美了

具體題解可以看我上面發的那個

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

struct node

a1[5100],a2[5100],a3[5100];

int n;ll a,b,c;

bool cmp1(node n1,node n2)

sort(a1+1,a1+1+n,cmp1);

sort(a2+1,a2+1+n,cmp2);

sort(a3+1,a3+1+n,c***);

int ans=0;

for(int i=1;i<=n;i++)//列舉v

while(l+1

<=n && a2[l+1].hif(minv<=a2[l].s && a2[l].s<=limv)cnt--;

}ans=max(ans,cnt);}}

printf("%d\n",ans);

return

0;}

BZOJ 1071 毒瘤題,單調指標搞搞

題目還是看原題吧。這道題簡直魔性 先膜一下大佬wjj orz 我們令s a h b v。原式就是s a minh b minv c 我們預處理出所有s。我們把資料複製兩份,x陣列按s從小到大排序,y陣列按h從小到大排序。我們隨便列舉minv,我們在算出乙個maxv minv c b 有什麼用一會解釋...

BZOJ1071 SCOI2007 壓縮 其他

zhouzhendong 有兩個序列a 1.n b 1.n 其編號為1.n,設為s序列。現在我們要求出最長的滿足條件的s的子串行s 設va min a s i vb min b s i 滿足對於所有的j s i a a j va b b j vb c。設v i a a i b b i 那麼,要求滿足...

劍指offer 雙指標

雙指標 21.py 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。class solution def exchange self,nums list int list int j len nums 1 i 0while iif ...