2436 Disease Management
概要
1<=D<=15種類の病気,1<=N<=1000匹の牛がいて,それぞれがいくつか病気にかかっている.
乳搾りをすると病原菌が混ざり合うが,Kまでは混ざってもOK.
最大何匹までokか?
解法
DこのうちK個,混ざってもいい病原体を選んで,全部チェック.
bit combinationの列挙が役に立った.
// bit combination // comb(N, K) int N, K; for(int comb = (1 << K) - 1; comb < (1 << N); ) { // ... int x = comb & -comb, y = comb + x; comb = (((comb & ~y) / x) >> 1) | y; }