博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeVS 1018 单词接龙(DFS)
阅读量:6563 次
发布时间:2019-06-24

本文共 1257 字,大约阅读时间需要 4 分钟。

题目大意:

 注意每个单词可以用两次,因为一个单词用一遍只取到了头,还要再用一遍单词取到尾。

代码:

#include 
using namespace std;int n;bool visit[100] = {
false};char ch;int res = 0,maxn = 0;string str[100];using namespace std;void dfs(int a){ for(int i = 0; i < 2*n; i++){ if(visit[i] == false){ int step = min(str[a].length(),str[i].length()); for(int j = 1 ; j < step; j++){ if(str[a].substr(str[a].length() - j, j) == str[i].substr(0,j)){ res = res + str[i].length()-j; visit[i] = true; maxn = max(res,maxn); dfs(i); res = res - str[i].length() + j; visit[i] = false; } } } }}int main(){ cin >> n; for(int i = 0; i < 2*n; i+=2){ cin >> str[i]; str[i+1] = str[i]; } cin >> ch; for(int i = 0; i < 2*n; i++){ if(str[i][0] == ch){ visit[i] = true; res = res + str[i].length(); maxn = max(maxn,res); dfs(i); visit[i] = false; res = res - str[i].length(); } } cout << maxn << endl; return 0;}

 

转载于:https://www.cnblogs.com/zyqBlog/p/7641541.html

你可能感兴趣的文章
SDOI2013 保护出题人
查看>>
HDU1282 回文数猜想
查看>>
控件联动(三级联动)
查看>>
shell编程学习
查看>>
点击qq、点击邮箱01
查看>>
limit分页优化
查看>>
时间处理总结(三)javascript与WCF
查看>>
构建之法笔记4
查看>>
腾讯1面
查看>>
安装Microsoft oneDrive(原skyDrive)
查看>>
FOB注意事项
查看>>
Win/Lin 双系统时间错误的调整 (转)
查看>>
Ubantu下安装jdk 教程
查看>>
Ue4管线中的灯光信息
查看>>
ActiveMQ入门实例
查看>>
手机monkey测试BUG重现及解决方法
查看>>
linux安装至少有哪两个分区,各自作用是什么?
查看>>
Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)【转】
查看>>
转载: 数据库索引原理和优缺点
查看>>
swoole 安装和简单实用
查看>>