小陽買水果 區間貪心

2021-09-29 12:28:03 字數 872 閱讀 3178

小陽買水果

需要列舉區間的左右端點,但是區間太多了.我們用字首陣列來表示區間v[r],然後我們給v[r]陣列儲存原位置並按從值從小到大排序,那麼排序後右邊的一定大於左邊的,如果左邊右端點小於右邊的右端點,這說明這一段區間和大於0,說明在這個一段連續可以買。因為排序過了,兩個右邊減左邊一定大於0,所以遍歷時記錄端點最小值,只要後面的端點大於前面端點最小值,就比較更新。因為是大於等於零,不能為0,所以排序時當大小相等時,讓位置小的排到後面,可以避免產生計算得到錯誤答案。要增加乙個前面的0值為0端點,防止n=1時找不到左端點。

#include

#include

#include

#include

#define inf 0x3f3f3f3f

using

namespace std;

struct acv[

2000010];

bool

cmp(ac a1,ac a2)

intread()

while

(ch>=

'0'&&ch<=

'9') s=s*

10+ch-

'0',ch=

getchar()

;return s*w;

}int

main()

n++;sort

(v+1

,v+n+

1,cmp)

;int minx=n,ans=0;

for(

int i=

1;i<=n;

++i)

printf

("%d"

,ans)

;}

牛客小白月賽16 D 小陽買水果

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 水果店裡有 nn個水果排成一列。店長要求顧客只能買一段連續的水果。小陽對每個水果都有乙個喜愛程度 aiai,最終的滿意度為他買到的水果的喜歡程度之和。如果和為正 不...

小陽買水果(線段樹維護最大值 樹上二分)

題目鏈結 給n個數 含負數 連續區間和大於0,區間長度最大 題解 預處理字首和並插入到線段樹里維護最大值。列舉字首和,然後在當前 字首和 位置i到n範圍上找離i位置最遠且大於 當前字首和 的字首和。怎麼找最遠呢?線段樹上優先查詢右兒子的區間就可以實現了。include define rep i,a,...

牛客小白月賽16 D 小陽買水果 (思維題)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 水果店裡有 n nn個水果排成一列。店長要求顧客只能買一段連續的水果。小陽對每個水果都有乙個喜愛程度 a i ai ai,最終的滿意度為他買到的水果的喜歡程度之和。...