填字母游戏【蓝桥杯】/博弈+dfs

填字母游戏



博弈+dfs

cpp 复制代码
#include<iostream>
#include<map>
using namespace std;
//要用map存储已经处理过的字符串不然会超时
map<string,int> m;
//dfs返回的就是结果
int dfs(string s)
{
    //剪枝
    if(m.find(s)!=m.end()) return m[s];
    //找到LOL代表输了
    if(s.find("LOL")!=string::npos) return m[s]=-1;
    //找不到空位表示平局
    if(s.find("*")==string::npos) return m[s]=0;
    int ping=0;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='*')
        {
            s[i]='L';
            if(dfs(s)==-1) 
            {
                //要回溯后才能存到m中
                s[i]='*';
                return m[s]=1;
            }
            if(dfs(s)==0) ping=1;
            s[i]='O';
            if(dfs(s)==-1) 
            {
                s[i]='*';
                return m[s]=1;
            }
            if(dfs(s)==0) ping=1;
            s[i]='*';
        }
    }
    //ping不为0表示有可能平局,返回0
    if(ping) return m[s]=0;
    //否则返回-1
    return m[s]=-1;
}
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        string s;
        cin>>s;
        cout<<dfs(s)<<endl;
    }
    return 0;
}
相关推荐
资源分享助手1 天前
飞车端游26年5月最新马年限定车单机版下载和教程(含最新至尊踏月皮肤/创世女娲/T3机甲)
游戏
影sir1 天前
不同测试数据下,该如何选择算法
算法·深度优先
数智工坊1 天前
【深度学习RL】DQN:深度强化学习的里程碑——让AI从像素中学会玩Atari游戏
论文阅读·人工智能·深度学习·游戏·transformer
2601_956002811 天前
gta侠盗猎车手5 2026最新绿色破解版免费下载 pc版 手机版通用
游戏·智能手机·游戏程序·团队开发·游戏美术·数字雕刻·关卡设计
德迅云安全-小潘1 天前
游戏行业如何保障网络安全
服务器·网络·游戏
handler011 天前
速通蓝桥杯省一: 前缀和&差分(附经典例题)
c语言·c++·笔记·职场和发展·蓝桥杯
上海云盾第一敬业销售1 天前
游戏开服即“炸服“?CC攻击成游戏行业隐形杀手
服务器·网络·游戏
WL_Aurora1 天前
备战蓝桥杯国赛【Day 9】
python·算法·蓝桥杯
资源分享助手2 天前
小马游戏 Horsey Game 下载与介绍(老番茄推荐)
游戏
WL_Aurora2 天前
备战蓝桥杯国赛【Day 8】
算法·蓝桥杯