蓝桥-ALGO-18-单词接龙
2017-06-03 00:51
423 查看
ACM模版
描述
题解
暴力搜索 dfs!代码
#include <iostream> #include <string> using namespace std; const int MAXN = 22; int n, len = 0; string s[MAXN]; int vis[MAXN]; int charge(int left, int right) { int len = 0; int llen = (int)s[left].length(); int rlen = (int)s[right].length(); for (int i = llen - 1; i > 0; i--) { int flag = 1, j = 0; for (; i + j < llen && j < rlen; j++) { if (s[left][i + j] != s[right][j]) { flag = 0; break; } } if (flag) { len = j; break; } } if (len == s[right].length()) { return 0; } return len; } void dfs(int k, int l) { len = max(len, l); for (int i = 0; i < n; i++) { if (vis[i] != 2) { int tmp = charge(k, i); if (tmp) { vis[i]++; dfs(i, l + (int)s[i].length() - tmp); vis[i]--; } } } } int main(int argc, const char * argv[]) { cin >> n; for (int i = 0; i < n; i++) { cin >> s[i]; } char a; cin >> a; for (int i = 0; i < n; i++) { if (s[i][0] == a) { vis[i]++; dfs(i, (int)s[i].length()); vis[i]--; } } cout << len << '\n'; return 0; }
相关文章推荐
- ALGO-18 单词接龙 —— DFS与字符串处理(java)
- 洛谷18-03-12-P1019 单词接龙
- 蓝桥-ALGO-24-统计单词个数
- 邮票封面设计 单词接龙
- 图论欧拉路径问题(单词接龙)
- 【codevs】p1018 单词接龙
- LintCode 120-单词接龙 广度优先搜索
- 蓝桥杯 算法训练 单词接龙
- 洛谷18-03-11-P1101单词方阵
- code1018 单词接龙 dfs,字符串处理
- codevs 1018 [noip 2000 提高] 单词接龙
- 1018 单词接龙
- 雅思词汇 词根+联系 记忆法 单词例句-18
- NOIP 2000年提高组复赛 单词接龙
- P1019 单词接龙
- 单词接龙:canArrangeWords
- 【NOIP 2000 提高组 T3】单词接龙(dfs)
- 图论欧拉路径问题(单词接龙)
- 【NOIP2014八校联考第2场第2试】单词接龙
- wikioi1018 单词接龙