zoukankan      html  css  js  c++  java
  • BZOJ1413 [ZJOI2009]取石子游戏

    [ZJOI2009]取石子游戏
    思路:
    博弈+dp,详见yyb博客
    代码:

    #pragma GCC optimize(2)
    #pragma GCC optimize(3)
    #pragma GCC optimize(4)
    #include<bits/stdc++.h>
    using namespace std;
    #define y1 y11
    #define fi first
    #define se second
    #define pi acos(-1.0)
    #define LL long long
    #define ll long long
    //#define mp make_pair
    #define pb push_back
    #define ls rt<<1, l, m
    #define rs rt<<1|1, m+1, r
    #define ULL unsigned LL
    #define pll pair<LL, LL>
    #define pli pair<LL, int>
    #define pii pair<int, int>
    #define piii pair<pii, int>
    #define pdd pair<double, double>
    #define mem(a, b) memset(a, b, sizeof(a))
    #define debug(x) cerr << #x << " = " << x << "
    ";
    #define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    //head
    
    const int N = 1e3 + 10;
    int L[N][N], R[N][N], T, n, a[N];
    int main() {
    	scanf("%d", &T);
    	while(T--) {
    		scanf("%d", &n);
    		for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
    		for (int i = n; i >= 1; --i) {
    			L[i][i] = R[i][i] = a[i];
    			for (int j = i+1; j <= n; ++j) {
    				int l = L[i][j-1], r = R[i][j-1], x = a[j];
    				if(x == r) L[i][j] = 0;
    				else if(x < r && x < l) L[i][j] = x;
    				else if(l <= x && x < r) L[i][j] = x+1;
    				else if(r < x && x < l) L[i][j] = x-1;
    				else L[i][j] = x;
    				
    				l = L[i+1][j], r = R[i+1][j], x = a[i];
    				if(x == l) R[i][j] = 0;
    				else if(x < r && x < l) R[i][j] = x;
    				else if(l < x && x < r) R[i][j] = x-1;
    				else if(r <= x && x < l) R[i][j] = x+1;
    				else R[i][j] = x;
    			}
    		}
    		if(n == 1) printf("1
    ");
    		else if(a[1] == L[2][n]) printf("0
    ");
    		else printf("1
    ");
    	}
    	return 0; 
    } 
    
  • 相关阅读:
    flask 第三方组件
    Flask基础与进阶
    odoo10 视图
    odoo10 ORM操作
    odoo10基础
    字典的setdefault方法
    redis常用操作
    git常用命令与操作
    vue_axios
    odoo 权限设置
  • 原文地址:https://www.cnblogs.com/widsom/p/11603347.html
Copyright © 2011-2022 走看看