(思維)2479 小b分糖果

2021-09-16 23:15:54 字數 1658 閱讀 4289

2 秒262,144 kb

20 分

3 級題

小b想給幼兒園的孩子們分發糖果,有 n 個孩子排成了一排,小b已經根據每個孩子的表現給他們打分。

你需要按照以下要求,幫助小b給這些孩子分發糖果:

首先,每個孩子至少分配到 1 個糖果;

其次,相鄰的孩子中,如果評分不同,則評分高的孩子必須獲得更多的糖果。

請問小b至少需要準備多少顆糖果呢?

收起

第一行乙個整數n,表示孩子數,其中0<n≤50000;

第二行n個數表示不同孩子的評分,以空格隔開,每個數不超過50000。

輸出乙個數,表示最多所需的糖果數
3

1 2 2

4
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define eps (1e-8)

#define max 0x3f3f3f3f

#define u_max 1844674407370955161

#define l_max 9223372036854775807

#define i_max 2147483647

#define re register

#define pushup() tree[rt]=tree[rt<<1]+tree[rt<<1|1]

#define nth(k,n) nth_element(a,a+k,a+n); // 將 第k大的放在k位

#define ko() for(int i=2;i<=n;i++) s=(s+k)%i // 約瑟夫

#define ok() v.erase(unique(v.begin(),v.end()),v.end()) // 排序,離散化

#define catalan c(2n,n)-c(2n,n-1) (1,2,5,14,42,132,429...) // 卡特蘭數

using namespace std;

inline int read()

while(c >= '0' & c <= '9') x = x * 10 + c - '0', c = getchar();

return x * f;

}typedef long long ll;

const double pi = atan(1.)*4.;

const int inf = 0x3f3f3f3f;

const ll inf = 0x3f3f3f3f3f3f3f3fll;

const int m=63;

const int n=1e5+5;

struct fun;

struct cmp

};priority_queue,cmp>qq;

int a[n],b[n];

int main());

}fill(b,b+n+1,inf);

while(!qq.empty())

ll ans=0;

for(int i=1;i<=n;i++)

ans+=b[i];

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

return 0;

}

(思維)2476 小b和序列

2 秒262,144 kb 20 分 3 級題 小b有乙個長度為n的序列a,她想求maxi你能幫幫她嗎?樣例解釋 選擇a2a2和a9a9,答案為min 8,7 9 2 49min 8,7 9 2 49,不存在其他選法答案更大,因此最大值就是49。收起第一行乙個數n,0 n 50000 第二行n個數表...

牛客提高訓練營2B 分糖果

題目 發現自己一年之前非常垃圾 題目大意是給你乙個 n 個點的環,給每個點乙個 1,a i 的取值,並且滿足環上任意相連兩點權值不能相等,求方案數 考慮斷環為鏈,發現不大會 不妨考慮所有 a i 均相等的情況,設 m a i 對於第乙個點,有 m 種選擇,其後每乙個點的取值都不能和上乙個相等,即 m...

問題 B 小biu放牛 二分 貪心

第二天叫醒我的不是鬧鐘,是夢想!題目描述 第1行 3個數n x m,中間用空格分隔 1 n 50000,1 x 10 9,1 m 10 9 第2 n 1行 每行1個數pi,對應木樁的位置 0 pi pi 1 m 並且給出的資料是有序的。輸出 輸出最長繩子的最小值。如果碼頭排不下所有船則輸出 1。樣例...