洛谷P1019:单词接龙

简介: 洛谷P1019:单词接龙

问题描述


单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。


输入格式

输入的第一行为一个单独的整数n (n<=20)表示单词数,以下n 行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”开头的字母。你可以假定以此字母开头的“龙”一定存在.


输出格式

  只需输出以此字母开头的最长的“龙”的长度

样例输入

  5

  at

  touch

  cheat

  choose

  tact

  a

样例输出

23

样例说明

连成的“龙”为atoucheatactactouchoose

#include<iostream>
#include<cstring>
using namespace std;
int n, ans;
char t;
string a[22];
int vis[22] = { 0 };
void dfs(string x,int s)
{
    ans = max(ans, s);
    for (int i = 1; i <= n; i++)
    {
        int p = 1;
        int la = x.length(), lb = a[i].length();
        while(p < min(la, lb))
        {
            if (x.substr(la - p) == a[i].substr(0, p) && vis[i]<2 )
            {
                vis[i]++;
                dfs(a[i], s + lb - p);
                vis[i]--;
                break;
            }
            p++;
        }
    }
}
int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    cin >> t;
    for (int i = 1; i <= n; i++)
    {
        if (a[i][0] == t)
        {
            vis[i]++;
            dfs(a[i], a[i].length());
            vis[i]--;
        }
    }
    cout << ans << endl;
    return 0;
}


目录
相关文章
|
10月前
|
缓存 算法 物联网
《深度剖析:鸿蒙分布式软总线实现设备稳定连接的奥秘》
鸿蒙系统的分布式软总线技术是实现智能设备互联互通的核心,通过智能发现、快速连接、异构组网和数据传输优化,构建稳定高效的通信基础。它采用极简协议与多径传输,支持实时业务和高精度需求,为智能家居、教育等场景提供无缝协同体验。未来,面对大规模设备管理和安全性挑战,持续创新将推动鸿蒙生态繁荣发展。
901 9
|
索引 存储 数据库
数据库设计规范
基于阿里数据库设计规范扩展而来
50672 4
|
7月前
|
JSON API 数据格式
淘宝天猫店铺订单列表、订单详情、订单物流 API 接口全攻略
淘宝天猫订单API接口简介:支持订单列表查询、订单详情获取及物流轨迹追踪功能。通过taobao.trades.sold.get等接口批量查询订单,按状态/时间筛选;taobao.trade.fullinfo.get获取订单详细信息;taobao.logistics.trade.trackget实时跟踪物流状态。开发者需注册账号、申请权限,并使用编程语言调用API,传递必要参数(如App Key、订单ID),处理JSON返回数据。适用于多场景订单管理与物流同步。
|
机器学习/深度学习 分布式计算 供应链
阿里云先知安全沙龙(上海站) ——大模型基础设施安全攻防
大模型基础设施的安全攻防体系涵盖恶意输入防御和基础设施安全,包括框架、三方库、插件、平台、模型和系统安全。关键漏洞如CVE-2023-6019(Ray框架命令注入)、CVE-2024-5480(PyTorch分布式RPC)及llama.cpp中的多个漏洞,强调了代码安全性的重要性。模型文件安全方面,需防范pickle反序列化等风险,建议使用Safetensors格式。相关实践包括构建供应链漏洞库、智能化漏洞分析和深度检测,确保全方位防护。
|
安全 Linux 图形学
Linux平台Unity下RTMP|RTSP低延迟播放器技术实现
本文介绍了在国产操作系统及Linux平台上,利用Unity实现RTMP/RTSP直播播放的方法。通过设置原生播放模块的回调函数,可将解码后的YUV数据传递给Unity进行渲染,实现低延迟播放。此外,还提供了播放器启动、参数配置及停止的相关代码示例,并概述了如何在Unity中更新纹理以显示视频帧。随着国产操作系统的发展,此类跨平台直播解决方案的需求日益增长,为开发者提供了灵活高效的开发方式。
361 6
|
监控
查看服务器/IIS日志、log、访问信息基本方法
除了手动查看,你也可以使用日志分析工具,如Log Parser、AWStats等,这些工具可以帮助你更方便地分析日志数据。
2801 1
|
Java Android开发
Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
2826 0
Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
|
Linux 网络安全 数据安全/隐私保护
Linux NFS协议:实现文件共享与远程访问
NFS(Network File System)是一种在计算机网络上实现文件共享的协议,允许多台计算机共享文件和目录。在Linux系统中,NFS协议被广泛用于实现文件在网络中的共享和远程访问。本文将深入解析Linux下的NFS协议,包括工作原理、配置、使用方法以及安全性措施,帮助读者全面了解NFS协议在实现文件共享和远程访问中的应用。
1776 1
|
存储 算法 JavaScript
Vue3渲染器之快速Diff算法
Vue3渲染器之快速Diff算法
439 0