社区讨论

大佬们为什么下载数据过了但评测暴0???

P1019[NOIP 2000 提高组] 单词接龙(疑似错题)参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mi6u03i0
此快照首次捕获于
2025/11/20 10:48
4 个月前
此快照最后确认于
2025/11/20 10:48
4 个月前
查看原帖
#include<bits/stdc++.h>
using namespace std;
char a[25][40000]; int len[25]; char b[3]; int mi[25][25]; int v[25]; int ans=0,an=0,n; int dfs(int x){ v[x]++; an+=len[x]; bool f=true; for(int i=0;i<n;i++){ if(mi[x][i]!=0&&v[i]<2){ an-=mi[x][i]; f=false; dfs(i); an+=mi[x][i]; } } if(f){ ans=max(an,ans); } v[x]--; an-=len[x]; return 0; } int main(){ char h; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%s",&a[i]); while(a[i][len[i]]!='\0'){ len[i]++; } } scanf("%c",&h); scanf("%c",&h); for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ for(int k=len[i]-1;k>0;k--){ if(a[i][k]==a[j][0]){ bool f=true; for(int k1=k+1;k1<len[i];k1++){ if(a[i][k1]!=a[j][k1-k]){ f=false; break; } } if(f&&(len[i]-k)!=len[j]){ mi[i][j]=len[i]-k; k=0; } } } } } for(int i=0;i<n;i++){ if(a[i][0]==h){ dfs(i); } } printf("%d",ans); return 0; }

回复

6 条回复,欢迎继续交流。

正在加载回复...