Envy(最大值前字尾 雙指標 二分)

2021-07-31 12:08:48 字數 1111 閱讀 3331

時間限制: 1 sec  記憶體限制: 128 mb

提交: 312  解決: 63

[提交][狀態][討論版]

今年的 acm 比賽推出了乙個賽後的娛樂活動,所有參賽選手排成一排玩擊鼓傳花,關於擊鼓傳花的玩法是這樣的: 

數人或幾十人圍成圓圈坐下,其中一人拿花(或一小物件);另有一人揹著大家或矇眼擊鼓(桌子、黑板或其他能發出聲音的物體),鼓響時眾人開始依次傳花,至鼓停止為止。此時花在誰手中(或其座位前),誰就上台表演節目(多是唱歌、跳舞、說笑話;或回答問題、猜謎、按紙條規定行事等);偶然如果花在兩人手中,則兩人可通過猜拳或其它方式決定負者。 

擊鼓傳花是一種老少皆宜的遊戲。 當然,就和大多數的 acm 題面的套路一樣,我們上面也說了一段廢話,下面我們來說一下正題...... 

我們讓 n 個人站成一排,編號為 1~n,每個人都有乙個數字代表他這次比賽的成績,對於每個人,如果他後面(編號大於他的人中)存在乙個人的成績大於等於他,那麼他的嫉妒值為他們之間的距離。兩個點 a和 b 之間的距離為 abs(a - b)。例如:{4,3,6,2},那麼第 1 個人對第 3 個人有 2 點嫉妒值;第 2 個人對第 3 個人有 1 點嫉妒值,最大嫉妒值為 2。 

第 1 行:1 個整數 n,代表這裡有 n 個人(2 <= n <= 50000)。 

接下來的 n 行:每行乙個數 ai(1 <= ai <= 10^9),  表示第 i 個人的比賽成績。 

輸出最大嫉妒值。 

443

62

2
[提交][狀態]

簡直是和here一模一樣

#include using namespace std;

const int maxn = 1e5 + 5;

int a[maxn];

int b[maxn];

int main()

ans = 0;

j = n - 1;

for (i = n - 1; i >= 0; --i)

if (a[i] <= a[j])

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

}return 0;

}

二分最大值最小問題

一場別開生面的牛吃草大會就要在farmer john的農場舉辦了!世界各地的奶牛將會到達當地的機場,前來參會並且吃草。具體地說,有n頭奶牛到達了機場 1 n 105 其中奶牛i在時間ti 0 ti 109 到達。farmer john安排了m 1 m 10 5 輛大巴來機場接這些奶牛。每輛大巴可以乘...

二分 最小化最大值

注意答案的二分性質,必須要滿足在滿足給定條件的所有情況的時候都滿足要求才能更新ans。include using namespace std typedef long long ll inline ll in while c 0 c 9 res res 10 c 48,c getchar retur...

LeetCode 分割陣列的最大值(二分搜尋)

給定乙個非負整數陣列和乙個整數 m,你需要將這個陣列分成 m 個非空的連續子陣列。設計乙個演算法使得這 m 個子陣列各自和的最大值最小。注意 陣列長度 n 滿足以下條件 1 n 1000 1 m min 50,n 示例 輸入 nums 7,2,5,10,8 m 2 輸出 18 解釋 一共有四種方法將...