Lec 6. Backtracing¶
约 20 个字 29 行代码 预计阅读时间不到 1 分钟
Turnpike Reconstruction Problem¶
WIP
Alpha-beta Pruning¶
推荐阅读
- OI Wiki: Alpha-beta 剪枝
Example
int alphabeta(Node* node, int alpha, int beta, int is_max) {
if(node->is_leaf) return node->value;
if(is_max) {
// max node
for(int i = 0; i < node->child_amount; i ++) {
Node* child = node->children[i];
alpha = max(alpha, alphabeta(child, alpha, beta, !is_max));
if(alpha >= beta) break;
}
return alpha;
} else {
// min node
for(int i = 0; i < node->child_amount; i ++) {
Node* child = node->children[i];
beta = min(beta, alphabeta(child, alpha, beta, !is_max));
if(alpha >= beta) break;
}
return beta;
}
}
int main() {
Node *root = read_tree();
int result = alphabeta(root, INT_MIN, INT_MAX, 1);
printf("%d\n", result);
return 0;
}