牛客練習賽51 E 數列 思維,二分

2021-10-11 22:19:50 字數 655 閱讀 9066

傳送門

開始頭髮昏,拼了命的去構造

發現需要特判的情況實在是多,搞不來.

但是,答案是具有單調性的

最後序列一定是一段一段以1

11開頭的小序列組成

設有x

xx段小序列,那麼此時的滿意度是n−x

n-xn−

x 那麼二分x

xx不久行了??

轉化為分成x

xx個遞增小序列,是否能不大於mmm

顯然是均分最優秀

#include

using

namespace std;

const

int maxn =

800009

;int n,ans[maxn]

,m,a[maxn]

;bool

isok

(int mid)

//構造mid個段落,使得和小於等於m

return

true;}

intmain()

for(

int i=

1;i<=n;i++

) cout << ans[i]

<<

" ";

}

牛客練習賽51

theme 給定n與m,要求你用正整數填充n個元素,使得這n個元素的和 m,定義喜愛度為i的個數使得2 i n且a i a i 1 1。1 n 1e5,1 m 1e9 solution 構造題。考慮列舉分成幾個段i,若某段的長度為len,則該段的數為1 len,可知喜愛度應為n i,所以我們的目標是...

牛客練習賽6 A 二分

有n只猴子,第i只猴子每過xi小時會連續吃香蕉yi小時。猴子從第二次開始每次休息結束後這只猴子連續吃香蕉的時間會增加zi小時。給定n只猴子,每乙隻的x i,yi,z i,以及時間t,求在前t小時中,所有猴子共吃了多少小時。對於乙隻猴子來說是這樣的 從第1小時開始 休息xi小時 1 x i 吃yi小時...

題解 牛客練習賽51

字首a的數量,字尾c的數量,遇到b就計算一次答案。includeusing namespace std typedef long long ll const int n 1e5 100 char s n int cnt n int main int tmp 0 for int i 1 i n i p...