撲克牌 cards

2022-08-05 14:03:18 字數 869 閱讀 9867

撲克牌

思路

這題也是二分!!

我們二分有幾套牌,然後再去檢驗是否符合,至於怎麼想到的,不要問我,我也不知道

那麼我們主要解決的就是check函式

我們將二分的套數和每種牌的數量進行比較,如果該種牌的數量大於mid,我們就不用管,如果小於的話我們就要將差值相加(代表我們要使用多少張鬼牌)

統計完後我們就判斷對吧,我們判斷我們統計出來所需要的鬼牌數量是否滿足於小於題目給的鬼牌數量的同時也要小於mid,如果滿足就返回mid(其實我最開始不懂這裡,後來才知道只有統計出來的數小於mid,才可能滿足題目的要求,即每套牌只能出現一張鬼牌)

**就特別簡單啊

**

#include#define ll long long

#define for(i,a,b) for(register int i=a;i<=b;i++)

#define rof(i,a,b) for(register int i=a;i>=b;i--)

using

namespace

std;

intn,m;

int a[80

];int

scan()

while(c>='

0'&&c<='9')

return

as*f;

}bool chek(int

mid)

intmain()

int l=0,r=maxx+m+1,ans=0

;

while(l

else r=mid;

}cout

<

return0;

}

view code