Codeforces 1119B 貪心二分

2021-09-17 05:33:51 字數 538 閱讀 8911

不改變原陣列的值,複製乙份,要求1-k連續,則1-mid區間內判斷

子陣列從大到小排序後,每兩個相差不大,比較均勻 i+=2

倒著的目的是前大後小 能裝前一定能裝後 盡量裝更多的 累積高度和

跳著累積高度和,如果<=h 可增加更多的瓶子,否則高度太多瓶子太多,減小瓶子數量

const int maxn=1005;

int a[maxn],b[maxn];

int n;

ll h;

bool check(int mid)

sort(b+1,b+mid+1);

reverse(b+1,b+mid+1);

for(int i=1;i<=mid;i+=2)

return sum<=h;

}int main()

int l=1,r=n,mid=0,ans=0;

while(l<=r)

else

r=mid-1;

} cout

}

CODEFORCES 535B 解題報告

仍然是水題,但是還是有可以說的地方。主要思路就是dfs可重排列。4,7組成的幸運數字,在n位數字的構造方式有2 n種,而資料是最多9位,則列舉只有512種,n 2的複雜度足矣。只列舉相應位數的4 7排列,前面的個數用2 n累加。只要遵循先選4再選7即可構造字典順序,然後查詢相應數。以下是 可直接ac...

CodeForces 816B(區間計數)

codeforces 816b 題意 給出n個區間和乙個k值,再給出q次詢問,每次詢問給出乙個區間,要求這個區間中的數在開始的n區間中出現次數不少於k次的數目。解法 將n個區間的每個數每出現一次就加一,最後統計q詢問的區間中不小於k的數的個數。寫這題主要是想講乙個常用的區間更新的方法,其實這題也可以...

Codeforces 965B 題解報告

當k 1時,取第乙個 的座標即可 當k 1時,需要求出每乙個點在上下左右四個方向所能到達的最遠處,記為up,down,left,right,再取上下方向和左右方向的和的最大值,即 max 0,up down k max 0,left right k n,k map int,input split a...