news 2026/11/4 19:01:30

DFS -- 1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DFS -- 1

P1019 [NOIP 2000 提高组] 单词接龙

https://www.luogu.com.cn/problem/P1019

来发题解的

首先看题目会觉得很简单,但是要怎么用代码实现呢。

字符串这个东西本质其实和数组差不多,只要我们掌握一些语法和函数

substr(x,y)

这是一个可以取出字符串任意一个部分的函数

第一个参数 x -- 代表要截字符串的起始位置

第二个参数 y -- 代表要截字符串的长度

比如 t = 'string' , t.substr(0,2) 就是 st

还有一个用法,比如 substr(4) 就是 ng //从位置4开始到结尾的子字符串

//字符串默认是从0开始索引的

有了这个函数,这个题目就会简单很多,接下来我们继续思考

1.怎么找到对应相等的部分,并接起来

2.怎么递归,要传递什么参数下去,即怎么去dfs。

----首先我们要先找到龙头,即第一个字母的对应,这样才会进行dfs

这很简单,我们只需一个for循环的判断即可。

然后进行匹配,当找到两个字符串相对应的两个部分,就把加起来,再进行dfs

#include<bits/stdc++.h> using namespace std; #define int long long #define endl '\n' const int N = 39; int n,ans = 0; char c; string ss[N]; int v[N] = {0}; void dfs(string s){ int ank = s.size(); ans = max(ans,ank); for(int i = 1 ; i <= n ; i++){ if(v[i] == 2) continue; //每个字符串最多只能被用一次 for(int j = 1 ; j <= min(s.size(),ss[i].size()) ; j++){ if(s.substr(s.size() - j) == ss[i].substr(0,j)){ v[i] ++; dfs(s + ss[i].substr(j));//把后面不相等的部分给接上 v[i] --; } } } } void solve(){ cin>>n; for(int i = 1 ; i <= n ; i++) cin>>ss[i]; cin>>c; for(int i = 1 ; i<= n ; i++){ if(ss[i][0] == c){ v[i] ++; dfs(ss[i]); v[i]--; // 回溯 } } cout<<ans; } signed main() { ios::sync_with_stdio(0); cin.tie(0); int t = 1; //cin >> t; while (t--) { solve(); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 19:47:35

2025最新!MBA论文写作TOP10:10个AI论文平台深度测评

2025最新&#xff01;MBA论文写作TOP10&#xff1a;10个AI论文平台深度测评 2025年MBA论文写作工具深度测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;越来越多的MBA学生开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场…

作者头像 李华
网站建设 2026/11/4 8:17:04

2025最新!专科生必备8个AI论文平台:开题报告与文献综述全测评

2025最新&#xff01;专科生必备8个AI论文平台&#xff1a;开题报告与文献综述全测评 2025年专科生论文写作工具测评&#xff1a;从功能到体验的全面解析 随着人工智能技术在学术领域的不断渗透&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率。然而&#xff0c;面…

作者头像 李华
网站建设 2026/11/3 8:41:03

搞砸一次发布赔了6位数后,我才明白平台工程的真正价值。

我永远忘不了那个周五晚上&#xff0c;我满怀信心地按下了发布按钮&#xff0c;然后整个系统就崩了。接下来的十几个小时&#xff0c;就是一场混乱的救火行动。回滚代码、排查日志、紧急修复&#xff0c;整个团队都被拖入了深渊。那一刻我才意识到&#xff0c;我们引以为傲的敏…

作者头像 李华
网站建设 2026/11/2 3:59:09

我们是如何用云端开发,把上线时间从1周压到3分钟的

整个技术圈都在为 AI 疯狂&#xff0c;我们讨论 Copilot 如何让编码效率提升十倍。但这可能只说对了一半&#xff0c;我们用 AI 加速了“写代码”&#xff0c;但作为工程师&#xff0c;我发现自己大量的时间&#xff0c;却消耗在了写代码之外的、那些看不见的“摩擦”上。我认为…

作者头像 李华