/*
题意:
Alice和Bob玩游戏,在一个4x4 的方格上
每个人每次选择2x2的区域将里面的四个值求和加到最后的分数当中(两个人共用一个分数),
然后逆时针翻转它们,
Alice想要分数尽量大Bob想要分数尽量小
两个人每次的选择都是最优的,求最后的分数
*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1000000007;
const int inf = unsigned(-1) >> 2;
const int maxn = 1e5 + 5;
using namespace std;
int sum, winx, winy;
int k;
int Map[5][5];
int rote(int x, int y) {
swap(Map[x][y], Map[x + 1][y]);
swap(Map[x][y + 1], Map[x + 1][y + 1]);
swap(Map[x][y], Map[x + 1][y + 1]);
return Map[x][y] + Map[x + 1][y] + Map[x][y + 1] + Map[x + 1][y + 1];
}
void rerote(int x, int y) {
swap(Map[x][y], Map[x + 1][y + 1]);
swap(Map[x][y + 1], Map[x + 1][y + 1]);
swap(Map[x][y], Map[x + 1][y]);
}
int DFS(int sum, int dep, int alpha, int beta) {
if(dep == 2 * k) return sum;
for(int i = 0
极大极小值搜索 + 剪枝
最新推荐文章于 2024-05-08 17:22:31 发布
本文探讨了在ACM算法竞赛中,如何有效地进行极大极小值搜索并应用剪枝技术来优化搜索过程,提高解题效率。
摘要由CSDN通过智能技术生成