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

2021-09-25 05:45:19 字數 1085 閱讀 9908

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

水果店裡有 nn個水果排成一列。店長要求顧客只能買一段連續的水果。

小陽對每個水果都有乙個喜愛程度 aiai,最終的滿意度為他買到的水果的喜歡程度之和。

如果和為正(不管是正多少,只要大於 00 即可),他就滿意了。

小陽想知道在他滿意的條件下最多能買多少個水果。

你能幫幫他嗎?

第一行輸入乙個正整數 n,表示水果總數。

第二行輸入 n 個整數 aiai,表示小陽對每個水果的喜愛程度。

一行乙個整數表示結果。(如果 1 個水果都買不了,請輸出 0)
示例1

複製

5

0 0 -7 -6 1

複製

1
1≤n≤2×106,|ai|≤103
題意:不解釋(簡單易懂)

題解:就是二分找到左邊比總和小的值,這樣保證右邊那一塊就是大於0的,當總和大於0的時候特判一下(因為總和大於0,取最大值的時候不需要減1(別的情況需要減1),結合**仔細想想)

上**(有解釋):

#include #include #include using namespace std;

typedef long long ll;

const int max = 1e6*2+10;

ll a[max];

ll x,w;

int ans;

int main()

int l=1,r=i;

while(l<=r)

ans=max(ans,i-r-1);//需要減1,自己推一下,不好解釋~~(大體就是找到右邊小於0的那一塊,多了乙個負值,把多的那個值去掉,右邊就是大於0的,當然那個負值在右邊那一塊的最左邊)

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

return 0;

}

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

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

牛客小白月賽16 D 小陽買水果 字首和 思維

題意 找出連續區間和大於0的最大區間和長度 思路 維護乙個字首和的優先佇列,按字首和從大到小排列,那麼因為你每次後來取出的字首和相等或者小於之前取出的字首和,這樣只用維護乙個右端點更新區間最大長度即可。時間複雜度為o nlogn 思路正確,是最醜的乙個寫法,卡guo。附上 include inclu...

牛客小白月賽16

很容易得到n 1時,因為小石先手,所以小石一定輸 而n!1時,假設n 5 小石先取1 小陽取2 4 小石去3 小陽輸,無論怎樣小石都有贏的機會 includeusing namespace std int main 打表求出1 1e3之間的所有三角形每層之和 include define ll lo...