機智的我第一次就寫的二分,天知道寫**無比慢 又對第乙份**無比有強迫症的我錯乙個思路會花多長時間扭過來。。
題意是第一行給出珠子的種類數
第二行給出每種珠子的數目
第三行每條多少
所以說珠子的總數很容易算出來吧~所以說項鍊最多有多少條很容易算出來吧~
然後就開始二分了~
check()函式是判斷條件,怎麼判斷呢~也就是每次出來乙個mid值,就和之前用陣列存下來的每顆珠子的給定數比較來決定是不是都選進去,選了以後發現少了再加,反之減
今天興奮過度需要冷靜。。
#include#includeint n,m,per[1010];
int high;
int check(int mid)
int fen(int low,int high)
int main()
{ while(scanf("%d",&n)!=eof)
{high=0;
if(n==0)break;
for(int i=0;i
2018湘潭邀請賽C題(主席樹 二分)
比賽的時候知道這題是用主席樹 二分,可是當時沒有學主席樹,就連有模板都不敢套,因為 實在是太長了。題意 給你一些數字,要求你某些區間中找到乙個h index。每次查詢h index複雜度不能超過o n h index的定義是 有最少h個數不小於h,找到最大的h。分析 假如查詢的區間長度為n,那麼an...
ACM 2015 亞洲區域賽北京賽區A題(二分)
該題方法就是二分,二分r,然後在判斷函式中判斷在列舉點左邊的綠洲面積。這樣做的複雜度是o nlogr 但是一開始wa了一發,後來才發現原來是因為有這樣的資料 一塊很大的沙漠中只有乙個邊長為1的小正方形綠洲。這樣的資料答案是r。所以我二分出來之後再向右推一下,直到不符合條件為止。下面是我ac 二分求的...
暑期賽c題 儲存歷史狀態的樹狀陣列 二分
看了解題報告之後知道就是乙個儲存歷史狀態的樹狀陣列,儲存了以前時間的修改 然後查詢乙個操作時間的時候,在進行sum的時候每次都要找這個區間 t的最大的時間修改的值,然後全部加起來 找 t的最大時間的時候要用二分 不然會超時 這題是個空間和時間都很多的題 挺麻煩的不過也是有點收穫,在時間上利用樹狀陣列...