方案A · 三重循环全部枚举 (穷举所有组合)
0 / 29,791
for (men = 0; men <= n; men++) {
for (women = 0; women <= n; women++) {
for (children = 0; children <= n; children++) {
if (men + women + children == n &&
6*men + 4*women + children == 2*n) { ... }
} } }
men (男: 3块)
0
外层循环
women (女: 2块)
0
中层循环
children (小: 半块)
0
内层穷举
| 序号 | men | women | children | 人数和 | 砖式和 | 判定 |
|---|
等待开始 · 预计 (n+1)³ 次尝试
方案B · 二重循环 + 计算 children (代数化简剪枝)
0 / 176
for (men = 0; men <= n / 3; men++) { // 缩小范围
for (women = 0; women <= n / 2; women++) {
children = n - men - women; // 直接代数计算
if (children >= 0 &&
6*men + 4*women + children == 2*n) { ... }
} }
men (0 ~ n/3)
0
外层枚举
women (0 ~ n/2)
0
内层枚举
children (计算值得出)
30
无需第三重循环
| 序号 | men | women | children | 搬砖和 | 目标 2n | 判定 |
|---|
等待开始 · 预计 (n/3+1)×(n/2+1) 次尝试