ACM_二进制代替DFS的运用
2015-07-21 20:02
225 查看
当所需是一位数组,或者是数组的大小明显小于32位的话,用二进制循环的技巧可以代替DFS繁琐的步骤
for(int i = 0; i < (1 << n); i++) {
int total = 0, Min = INF, cnt = 0;
for(int j = 0; j < n; j++) {
if(i >> j & 1) {
cnt++;
total += A[j];
Min = min(Min, A[j]);
}
}
}
for(int i = 0; i < (1 << n); i++) {
int total = 0, Min = INF, cnt = 0;
for(int j = 0; j < n; j++) {
if(i >> j & 1) {
cnt++;
total += A[j];
Min = min(Min, A[j]);
}
}
}
相关文章推荐
- CocoaPods安装和使用教程
- HDOJ 1200 To and Fro(简单模拟)
- 7.19 SQL——函数
- 各类背包问题
- ACM学习历程—HDU 1276 士兵队列训练问题(队列)
- Android ExpandMenu 多级菜单
- 2015 Multi-University Training Contest 1 Hdu 5292 Pocket Cube
- linux在虚拟机联网问题
- AndroidAnnotations库的使用
- POJ 1328 Radar Installation
- 分数加减法
- HDU 5288 OO’s Sequence 区间个数
- Axure RP 7.0 滑动条制作
- KVC
- KVO
- Redis基本认识
- icvSetWeightsAndClasses
- 获取设置时间系统调用
- 应届生简历中常出现的问题
- Java 知识总结