填字母游戏【蓝桥杯】/博弈+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;
}
相关推荐
xiezhr1 天前
米哈游36岁程序员被曝复工当晚猝死出租屋内
游戏·程序员·游戏开发
爱搞虚幻的阿恺5 天前
Niagara粒子系统-超炫酷的闪电特效(加餐 纸牌螺旋上升效果)
游戏·游戏引擎
智算菩萨5 天前
儿童游乐空间的双维建构:室内淘气堡与室外亲子乐园的发展学理、功能分野与协同育人机制研究
游戏·游戏策划
独自破碎E5 天前
【DFS】BISHI76 迷宫寻路
算法·深度优先
代码无bug抓狂人5 天前
C语言之单词方阵——深搜(很好的深搜例题)
c语言·开发语言·算法·深度优先
码农幻想梦5 天前
3472. 八皇后(北京大学考研机试题目)
考研·算法·深度优先
marteker5 天前
房地产市场平台Zillow与《魔兽世界》合作展示游戏内房屋
游戏
重生之后端学习5 天前
74. 搜索二维矩阵
开发语言·数据结构·算法·职场和发展·深度优先
觅特科技-互站5 天前
实测:接入陌讯Skills后Copilot任务完成率↑63%、调试耗时↓90%
线性回归·深度优先·copilot
wanhengidc5 天前
云手机 打造云端算力
运维·服务器·网络·游戏·智能手机