(思維)2476 小b和序列

2021-09-20 10:30:50 字數 1492 閱讀 5786

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個數表示a_i,以空格隔開,0<=a_i<=10000。

輸出乙個數表示這個最大值
9

1 8 6 2 5 4 8 3 7

49
題解:先排序,這樣就確定了前面的肯定是小的,然後再固定乙個距離就好了;

反序遍歷,得到對當前值來說的最小位置和最大位置

那麼,距離 = max(|最小位置-當前位置|,|最大位置-當前位置|)

#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]=max(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()) // 排序,離散化

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 m=1e3+5;

const int n=5e5+5;

int a[n],l[n],r[n];

struct funf[n];

bool cmp(fun aa,fun bb)

int ans=0;

for(int i=1;iprintf("%d\n",ans);

return 0;

}

(思維)2479 小b分糖果

2 秒262,144 kb 20 分 3 級題 小b想給幼兒園的孩子們分發糖果,有 n 個孩子排成了一排,小b已經根據每個孩子的表現給他們打分。你需要按照以下要求,幫助小b給這些孩子分發糖果 首先,每個孩子至少分配到 1 個糖果 其次,相鄰的孩子中,如果評分不同,則評分高的孩子必須獲得更多的糖果。請...

B 小y的序列

又是一年 csp,機房的oier都在刷題,alan卻在發呆想著小y,正巧忽然聽到隔壁機房某神zlk熟悉的聲音 找規律就可以了吧,這個序列感覺很熟悉啊,就是1,2,4,6,11這其實就是乙個a i 1 a i i的序列哦,突然隔壁的聲音大了起來,zlk,你好像有個數寫錯了 大霧 課後,alan在紙上寫...

(DP 遞推)2487 小b和環

2 秒262,144 kb 20 分 3 級題 小b有乙個長度為n的環,每個點上有個數字。現在請你選出一些點,滿足選出的任意兩個點在環上不相鄰,且選出的點的數字之和最大,你只需輸出這個最大值。收起第一行輸入乙個數n,其中0 n 50000 第二行輸入n個非負整數,第i個數表示環上順時針第i個點上的數...