社区讨论
A了但是不明白14行为什么取最小值 回了必关
P1019[NOIP 2000 提高组] 单词接龙(疑似错题)参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mjh2cnol
- 此快照首次捕获于
- 2025/12/22 19:19 2 个月前
- 此快照最后确认于
- 2025/12/25 10:35 2 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
const int N=1e3;
int n,len,ans,v[N];
string s[N];
char t;
void dfs(string len,int l)
{
ans=max(ans,l);
for(int i=1;i<=n;i++)
{
if(v[i]==2) continue;
int o=s[i].size();
for(int j=1;j<min(l,o);j++)
{
if(len.substr(len.size()-j)==s[i].substr(0,j))
{
++v[i];
dfs(len+s[i].substr(j),(len+s[i].substr(j)).size());
--v[i];
}
}
}
}
signed main() {
cin>>n;
for(int i=1;i<=n;i++) cin>>s[i];
cin>>t;
for(int i=1;i<=n;i++)
{
if(s[i][0]==t)
{
v[i]++;
dfs(s[i],s[i].size());
v[i]--;
}
}
cout<<ans;
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...