幼兒園有n
個小朋友,每個小朋友都有自己想玩的玩具。身為幼兒園園長的你決定給幼兒園買一批玩具,由於經費有限,你只能買 m
m 個玩具。已知玩具商店一共賣 k
k 種玩具,編號為 1,2,3,...k1,
2,3,
...k
,你讓每個小朋友把想玩的玩具編號都寫在了紙上。你希望滿足盡可能多的小朋友的需求,請計算出最多能滿足多少個小朋友的玩具需求。
第一行,輸入三個整數 n,m,k(1 \leq n \leq 100, 1 \leq m \leq k \leq 15)n,
m,k(
1≤n≤
100,
1≤m≤
k≤15
),中間用空格分開。
接下來 n
n 行,第 i+1(0 \leq i < n)i+
1(0≤
i行的第乙個數字 a_ia
i 代表第 i
i 個小朋友想玩的玩具數量,接下來有 a_ia
i 個數字,代表這 a_ia
i 個玩具的編號。
輸出乙個整數,表示最多能滿足多少小朋友的玩具需求。
樣例輸入
5 3 52 1 4
02 3 1
3 2 3 4
2 4 5
樣例輸出
3這道題我的思路是用二進位制列舉法,用乙個標記陣列統計哪些編號的玩具被購買,1為購買,0為不購買,再去統計能滿足的孩子數目。
#include int main(void)
} int max = 0;//最多能滿足的孩子數
for(int i = 0; i < (1 << k); i++)
;//記錄玩具是否購買的陣列(1為購買)
for(int j = 0; j < k; j++)
}int count2 = 0;//當前方案能滿足的孩子數
for(int x = 0; x < n; x++)
}if(flag && count <= m)
}if(max < count2)
}printf("%d\n", max);
return 0;
}
計蒜客幼兒園買玩具 二進位制列舉子集
問題描述 蒜廠幼兒園有 n 個小朋友,每個小朋友都有自己想玩的玩具。身為幼兒園園長的你決定給幼兒園買一批玩具,由於經費有限,你只能買 m 個玩具。已知玩具商店一共賣 k 種玩具,編號為 1,2,3,k,你讓每個小朋友把想玩的玩具編號都寫在了紙上。你希望滿足盡可能多的小朋友的需求,請計算出最多同時能滿...
二進位制列舉 幼兒園買玩具
問題描述 蒜廠幼兒園有n 個小朋友,每個小朋友都有自己想玩的玩具。身為幼兒園園長的你決定給幼兒園買一批玩具,由於經費有限,你只能買m 個玩具。已知玩具商店一共賣k種玩具,編號為1,2,3,k,你讓每個小朋友把想玩的玩具編號都寫在了紙上。你希望滿足盡可能多的小朋友的需求,請計算出最多能滿足多少個小朋友...
幼兒園買玩具 二進位制列舉
幼兒園買玩具 蒜廠幼兒園有 nn 個小朋友,每個小朋友都有自己想玩的玩具。身為幼兒園園長的你決定給幼兒園買一批玩具,由於經費有限,你只能買 mm 個玩具。已知玩具商店一共賣 kk 種玩具,編號為 1,2,3,k1,2,3,k,你讓每個小朋友把想玩的玩具編號都寫在了紙上。你希望滿足盡可能多的小朋友的需...