2017 ICPC Naning Rake It In
生活随笔
收集整理的這篇文章主要介紹了
2017 ICPC Naning Rake It In
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接
alpha-beta剪枝
#include<cstdio> #include<iostream> #include<cstring> #include<string> #include<queue> #include<map> #include<vector> #include<set> #include<cmath> #include<cstdlib> #include<algorithm> #include<stack>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; i < 3; i++){for(int j = 0; j < 3; j++){int tmp = DFS(sum + rote(i, j), dep + 1, alpha, beta);rerote(i, j);if(dep & 1)beta = min(beta, tmp);elsealpha = max(alpha, tmp);if(beta <= alpha)return dep & 1 ? beta : alpha;}}return dep & 1 ? beta : alpha; }int main() {ios_base::sync_with_stdio(0);cin.tie(0); cout.tie(0);int t;cin >> t;while(t--){cin >> k;for(int i = 0; i < 4; i++){for(int j = 0; j < 4; j++){cin >> Map[i][j];}}cout << DFS(sum, 0, -inf, inf) << endl;}return 0; }?
總結
以上是生活随笔為你收集整理的2017 ICPC Naning Rake It In的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你若在患难之日胆怯,你的力量便微小
- 下一篇: aspectJ动态编入问题