acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • A145.单词接龙

    userId_undefined

    复仇者_x ‮

    出道萌新秩序白银
    31阅读
    0回复
    1点赞
  • 高质题解

    关注一下 共68行

    userId_undefined

    138****6096

    20阅读
    0回复
    1点赞
  • 仅供“参考”

    #include <bits/stdc++.h> using namespace std; vector<string> words; int visited[25]; string head; int n; int ans; bool modify(string& head, string& tail, string& extra) { int i; int hsize = strlen(head.c_str()); int tsize = strlen(tail.c_str()); for (i = 1; i < min(hsize, tsize); i++) { if (head.substr(hsize - i, hsize) == tail.substr(0, i)) { break; } } if (i == min(hsize, tsize)) { return false; } else { extra = tail.substr(i, tsize); head = head + extra; return true; } } void unmodify(string& head, string& tail, string& extra) { head = head.substr(0, head.length() - extra.length()); } void dfs(string head) { for (int i = 0; i < n; i++) { if (visited[i] < 2) { string tail = words[i]; if (head.length() == 1) { if (tail[0] == head[0]) { head = tail; if (head.length() >= ans) { ans = head.length(); } visited[i]++; dfs(head); visited[i]--; head = tail[0]; } } int main() { cin >> n; for (int i = 0; i < n; i++) { string word; cin >> word; words.push_back(word); } cin >> head; dfs(head); cout << ans; return 0; }

    userId_undefined

    米方蕊

    19阅读
    0回复
    1点赞
首页