P1127 词链 📅 发布时间:2026/7/8 1:58:07 👁️ 浏览次数: P1127 词链题目描述如果单词X XX的末字母与单词Y YY的首字母相同则X XX与Y YY可以相连成X . Y X.YX.Y。注意X XX、Y YY之间是英文的句号.。例如单词dog与单词gopher则dog与gopher可以相连成dog.gopher。另外还有一些例子dog.gophergopher.ratrat.tigeraloha.alohaarachnid.dog连接成的词可以与其他单词相连组成更长的词链例如aloha.arachnid.dog.gopher.rat.tiger注意到.两边的字母一定是相同的。现在给你一些单词请你找到字典序最小的词链使得每个单词在词链中出现且仅出现一次。注意相同的单词若出现了k kk次就需要输出k kk次。输入格式第一行是一个正整数n nn1 ≤ n ≤ 1000 1 \le n \le 10001≤n≤1000代表单词数量。接下来共有n nn行每行是一个由1 11到20 2020个小写字母组成的单词。输出格式只有一行表示组成字典序最小的词链若不存在则只输出三个星号***。输入输出样例 #1输入 #16 aloha arachnid dog gopher rat tiger输出 #1aloha.arachnid.dog.gopher.rat.tiger说明/提示对于40 % 40\%40%的数据有n ≤ 10 n \leq 10n≤10对于100 % 100\%100%的数据有n ≤ 1000 n \leq 1000n≤1000。解析/* * 思路构建: * 1.如果把输入的单词看作是一条边, 每条边利用一次, 这恰好就是一条欧拉路径 * 2.然后问题现在就落在如何建图上, 假设一个单词组成是 a***b, 那其就可以连以b开头的所有单词(边), 其就可以被所有以a结尾的单词连 * 所以以单个字母作为索引映射单词是一个可行的方案, 这样根据单词首尾字母就完美的建好了一张图, 以单个字母标记一个结点来计算出度入度 * 3.接下来就得考虑访问顺序问题, 由于是按照字典序排列, 所以索引指向的单词得按照字典序排列 * 4.然后判断这张图是否存在欧拉路径, 不存在直接输出*** * 5.如果存在就按照hierholzer算法建立欧拉路径即可 * */#includeiostream#includevector#includemap#includestring#includealgorithm#includeunordered_map#includeunordered_set#includestackusingnamespacestd;intn;string word;mapchar,vectorstringgraph;unordered_mapchar,intindegree,outdegree,start;// 标记从第几个单词开始访问chars0,t0;// 开始结点intcnt;// 统计特殊结点个数stackstringans;unordered_setcharallchars;// 记录所有出现过的字母, 以便于判断出入度是否合适voidhierholzer(charstartNode){while(start[startNode]graph[startNode].size()){stringedgegraph[startNode][start[startNode]];start[startNode];hierholzer(edge.back());ans.push(edge);// 回溯时将之前所走过的边都记录下来, 压入栈中}}intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cinn;// 建图for(inti0;in;i){cinword;graph[word.front()].push_back(word);outdegree[word.front()];indegree[word.back()];allchars.insert(word.front());allchars.insert(word.back());}// 字典序升序排列for(autoe:graph){sort(e.second.begin(),e.second.end());}// 判断是否存在欧拉路径/* * 判断方法: * 如果一个有向图存在欧拉路径, 那么出了两条特殊结点意外, 其余结点出度入度都相等 * 两个特殊结点要么出入度也相等, 构成欧拉回路 * 要么一个出度边多一条, 一个入度边多一条 */for(constautoe:allchars){charnodee;if(indegree[node]!outdegree[node]){cnt;// 出度不等于入度if(!soutdegree[node]-indegree[node]1){snode;}elseif(!tindegree[node]-outdegree[node]1){tnode;}}if(cnt2)break;}if(cnt0||(cnt2st)){// 存在欧拉路径hierholzer(s?s:(graph.begin()-first));if(ans.size()n){// 这里出了考虑入度出度, 还得考虑连通性wordans.top();ans.pop();while(!ans.empty()){word.ans.top();ans.pop();}coutword\n;return0;}}cout***\n;return0;}
逐一详细描述原始训练集、验证集、测试集和RAG数据集,并剖析它们之间的核心区别 在机器学习和自然语言处理领域,数据集是模型训练、调优和评估的基石。不同用途的数据集被赋予了不同的名称和角色,而随着检索增强生成(RAG)等新型架构的兴起,数据集的定义和构成也变得更加复杂。一、传统机器学习三大数… 2026/7/8 1:56:51
浅析当前主流信号灯控制的发展与技术 信号灯控制正经历从“车适应灯”到“灯适应车”的深刻变革。本篇从经典控制方式、基础架构演进、前沿技术探索三个维度,以下梳理了该领域的技术现状与发展趋势。1. 绪论交通信号控制系统是城市交通管理的核心基础设施,其发展历程可追溯至1868年英国伦敦的… 2026/7/3 17:17:38
Java实现指定章节分割txt格式的小说 是需要在代码中输入的版本,下面还有JFrame的窗口工具版本 import java.io.*; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.regex.Pattern; import java.util.regex.Matcher;public class Tx… 2026/7/6 3:40:10
【OpenHarmony/HarmonyOs 】错题本功能从 0 到 1:答题记录、去重收录与复习闭环 【OpenHarmony/HarmonyOs 】错题本功能从 0 到 1:答题记录、去重收录与复习闭环 错题本是学习 App 里非常实用的功能。用户不是只需要“做题”,更需要知道自己错在哪里、后面怎么复习。本文结合我的「化学视界」项目,记录我是如何开发错题本功… 2026/7/8 1:55:20
音视频编解码:VP8 / VP9 / H.264 / Opus 音视频编解码:VP8 / VP9 / H.264 / Opus WebRTC 支持哪些音视频编解码器?各有什么优缺点?怎么选?码率怎么设?这篇讲 WebRTC 常用的视频编码(VP8/VP9/H.264/AV1)和音频编码(Opus/G.71… 2026/7/8 1:55:20
AutoJS6 + Shizuku 实战:淘金币自动签到与任务脚本 🚀 目标:实现淘金币自动签到,自动做任务。 autojs 简介 autojs 安卓平台 JavaScript 自动化工具。 版本选择 autojs 涉及多个版本,下面介绍简单下。 autojs 原版 Auto.js 官网如下,但因项目年代和分支不同,情况有些特殊。 官方论坛 / 官网:https://www.autojs.or… 2026/7/8 1:51:19
CIFAR-10/100 数据集实战:PyTorch 与 TensorFlow 加载对比与 3 种预处理技巧 CIFAR-10/100 数据集实战:PyTorch 与 TensorFlow 加载对比与 3 种预处理技巧当你在深夜调试一个图像分类模型时,突然发现验证集准确率卡在60%死活上不去——这可能不是模型架构的问题,而是数据加载和预处理环节埋了雷。CIFAR-10和CIFAR-100作… 2026/7/8 1:49:18
深度解析ChanlunX缠论插件:量化交易者的技术分析利器 深度解析ChanlunX缠论插件:量化交易者的技术分析利器 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX是一款基于缠中说禅理论的专业级通达信技术分析插件,通过C实现核心算… 2026/7/8 1:47:18
P1435 回文字串【洛谷算法习题】 P1435 回文字串 网页链接 P1435 回文字串 题目背景 IOI2000 第一题 题目描述 回文词是一种对称的字符串。任意给定一个字符串,通过插入若干字符,都可以变成回文词。此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数。 … 2026/7/8 1:47:18
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58