[BZOJ4801]打牌 博弈搜索

本文通过一个具体实例探讨了博弈搜索在程序设计中的应用。作者对比了分类讨论与博弈搜索两种方法,详细介绍了博弈搜索的实现过程,并分享了代码实现细节。

出题人qqq说,分类讨论是大坑
实力作死写了一发分类讨论,发现真tm是大坑
博弈搜索多好啊

#include <bits/stdc++.h>
#define INF 2147483647
using namespace std;
inline int rd() { int r; scanf("%d",&r); return r; }
char s[10],t[10];
int a,b,c,d,A,B,C,D,x[10];
int get() {
    scanf("%s",s+1);
    if (s[1] == 'A') return 1;
    if (s[1] == 'T') return 10;
    if (s[1] == 'J') return 11;
    if (s[1] == 'Q') return 12;
    if (s[1] == 'K') return 13;
    return s[1]-'0';
}

int calc(int x,int y,int xh) {
    if (x == y) {
        if (xh) return x; else return -x;
    }
    if (x == 1) return 1;
    if (y == 1) return -1;
    if (x>=y) return x; else return -y;
}


int o(int x,int y,int xh) {
    if (x == y) return xh;
    if (x == 1) return 1;
    if (y == 1) return 0;
    if (x>=y) return 1; else return 0;
}

int dfs(int u,int dep,int v,int xxx) {
    int ret;
    if (u == 1 && dep == 3) return v;
    if (u == 1) {
        ret = -INF;
        if (!A) {
            x[dep] = a, A = 1; 
            ret = max(ret, dfs(0,dep,v,xxx));
            x[dep] = 0, A = 0;
        }
        if (!B) {
            x[dep] = b, B = 1;
            ret = max(ret, dfs(0,dep,v,xxx));
            x[dep] = 0, B = 0;
        }
        return ret;
    }

    if (u == 0) {
        ret = INF;
        if (!C) {
            C = 1;
            int no = o(x[dep], c, xxx);
            ret = min(ret, dfs(1,dep+1,v+calc(x[dep],c,xxx),no));
            C = 0;
        }
        if (!D) {
            D = 1;
            int no = o(x[dep], d, xxx);
            ret = min(ret, dfs(1,dep+1,v+calc(x[dep],d,xxx),no));
            D = 0;
        }
        return ret;
    }

    assert(0); return 0;
}
int main() {
    int T = rd();
    while (T--) {
        a = get(), b = get();
        if (a>b) swap(a,b);
        c = get(), d = get();
        if (c>d) swap(c,d);

        int ans = dfs(1,1,0,1);
        printf("%d\n",ans);
    }
    return 0;
}

【Copula光伏功率预测】基于单调广义学习系统(MBLS)和Copula理论的时空概率预测模型(Matlab代码实现)内容概要:本文介绍了一个基于单调广义学习系统(MBLS)和Copula理论的时空概率预测模型,用于光伏功率预测,并提供了相应的Matlab代码实现。该模型结合了MBLS在非线性映射和快速学习方面的优势,以及Copula函数在刻画多变量随机变量之间复杂相关性结构的能力,能够有效处理光伏发电的不确定性与时空相关性,从而提高预测精度和可靠性。此外,文中还列举了多个相关领域的研究案例和技术应用,展示了其在电力系统、机器学习、路径规划等多个方向的广泛应用前景。; 适合人群:具备一定编程基础和电力系统背景知识,熟悉Matlab编程语言,从事新能源发电预测、电力系统优化等相关领域研究的研发人员和高校师生。; 使用场景及目标:①应用于光伏电站的实际功率预测中,提升电网调度的准确性和稳定性;②作为学术研究工具,探索新型预测算法在处理非线性和不确定性问题上的潜力;③为其他可再生能源如风力发电的概率预测提供借鉴和参考。; 阅读建议:建议读者结合实际数据进行实验验证,深入理解MBLS和Copula理论的核心思想及其实现细节,同时关注模型参数的选择对预测性能的影响,以期达到最佳的应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值