程式設計習題之撲克牌二分

2022-09-23 12:54:13 字數 464 閱讀 6163

你有n種牌,第i種牌的數目為ci。另外有一種特殊的牌:joker,它的數目是m。你可以用每種牌各一張來組成一套牌,也可以用一張joker和除了某一種牌以外的其他牌各一張組成1套牌。比如,當n=3時,一共有4種合法的套牌:, , , 。 給出n, m和ci,你的任務是組成盡量多的套牌。每張牌最多只能用在一副套牌裡(可以有牌不使用)。

n<=50,ci<=5e8

一開始想到乙個複雜一點點的貪心,後來發現二分會更簡潔。

#include

#include

#include

#include

#include

using namespace std;

int n,m,a[55],ans;

bool check(int x)

{ int tmp=min(m,x);

for (int i=1;i<=n;i++)

if (a[i]

撲克牌(二分)

題目描述 你有n種牌,第i種牌的數目為ci。另外有一種特殊的牌 joker,它的數目是m。你可以用每種牌各一張來組成一套牌,也可以用一張joker和除了某一種牌以外的其他牌各一張組成1套牌。比如,當n 3時,一共有4種合法的套牌 給出n,m和ci,你的任務是組成盡量多的套牌。每張牌最多只能用在一副套...

BZOJ 1816 撲克牌 二分

由於答案具有單調性,考慮二分答案並驗證。如果能湊齊x堆,因為每個joke在乙個牌堆裡最多只能用一次,則至多只能用min x,m 個joke.對於每個牌,如果這個牌的總數小於x,用joke補齊剩下的,如果能補齊那麼一定能組成x堆。簡單證明 補齊完後的牌堆裡每用joke乙個,一定能在其他牌裡面湊齊n 1...

程式設計之美 撲克牌

小資料ac,大資料tle。時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb 一副不含王的撲克牌由52張牌組成,由紅桃 黑桃 梅花 方塊4組牌組成,每組13張不同的面值。現在給定52張牌中的若干張,請計算將它們排成一列,相鄰的牌面值不同的方案數。牌的表示方法為xy,其中x為面值,...