P1859 单词接龙
#include<iostream> #include<cstring> #include<cmath> using namespace std; int n,length=0,vis[1000]={0};string str[1000]; inline int check(string a,string b) { int p=min(a.length(),b.length()); for(int i=1;a.length()==1? i<=p:i<p;i++) { bool flag=true; for(int j=0;j<i;j++) { if(a[a.length()-i+j]!=b[j]) { flag=false; break; } } if(flag==true) return i; } return 0; } void dfs(string s,int length_now) { length=max(length,length_now); for(int i=1;i<=n;i++) { if(vis[i]>1) continue; else { int add=check(s,str[i]); if(add!=0) { vis[i]++; dfs(str[i],length_now+str[i].length()-add); vis[i]--; } } } } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>str[i]; cin>>str[n+1]; dfs(str[n+1],1); cout<<length<<endl; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律