• 2019.1.21 单词接龙


    题目传送门

    主要就是简单的字符串+深搜

    每次枚举可以接下去的单词 再枚举最后取i位作为后缀

    枚举不到单词就取长度

    上代码

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int n,len,book[25];
    string word[25],fir,ne;
    bool judge(string str,string left)//判断是否可以接下去
    {
        int l=str.size();
        for(int i=0;i<l;i++)
            if(str[i]!=left[i])return false;
        return true;
    }
    void dfs(string now,int l)
    {
        for(int i=1;i<=n;i++)
        {
            if(judge(now,word[i])&&book[i])
            {
                book[i]--;
                int le=word[i].size();
                int l1=l+le-now.size();//加上单词后的新长度
                for(int j=le-1;j>=1;j--)//枚举前缀
                {
                    ne.assign(word[i],j,le-j+1);
                    dfs(ne,l1);
                }
                book[i]++;
            }
        }
        len=max(l,len);//取长度
        return;
    }
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)book[i]=2;
        for(int i=1;i<=n;i++)cin>>word[i];
        cin>>fir;
        dfs(fir,1);
        printf("%d",len);
        return 0;
    }
    /*====年轻人,瞎搞是出不了省一的,这就是现实====*/
  • 相关阅读:
    iaure学习网站
    linux下环境搭建比较
    微信分享jsdk接口
    微信接口开发遇到的问题
    Centos7.6部署k8s(v1.14.2)集群
    k8s简介
    nginx配置ssl证书
    kafka zookeeper介绍
    mysql数据库的备份与还原
    centos7 部署jumpserver
  • 原文地址:https://www.cnblogs.com/qxds/p/10297845.html
Copyright © 2020-2023  润新知