【发布时间】:2017-03-17 21:13:47
【问题描述】:
请任何人帮助我找出hackerrank蜡烛计数问题中使用的位掩码(包含-排除原则方法)
https://www.hackerrank.com/challenges/candles-2
我无法清楚地了解编辑代码中写的是什么。
您可以打开社论查看完整代码
int res = 0;
for(int mask = 0; mask < (1 << K); mask ++){
memset(ft, 0, sizeof ft);
int tmp = 0;
for(int i = 0; i < N; i++){
if((mask >> (C[i] - 1)) & 1){
dp[i] = 1 + query(H[i] - 1); // BIT Query function
madd(tmp, dp[i]);
update(H[i], dp[i]); // BIT update function
}
}
if(__builtin_popcount(mask) % 2 == K % 2){
madd(res, tmp);
} else {
madd(res, mod - tmp);
}
}
【问题讨论】:
标签: dynamic-programming bitmask