/ Vijos / 讨论 / 题解 /

魔族密码 题解

#include <bits/stdc++.h>
using namespace std;
string a[10000];int s[10000];
int main()
{
int n,m,i,j,k,max;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
s[i]=1;
}
sort(a+1,a+1+n);
for(i=2;i<=n;i++)
{
for(j=1;j<i;j++)
{
for(k=0;k<=a[i-j].length()-1;k++)
if(a[i][k]!=a[i-j][k]||a[i].length()<=a[i-j].length())
break;
if(k==a[i-j].length()&&s[i-j]>=s[i])
s[i]=s[i-j]+1;
}
}
sort(s+1,s+1+n);
cout<<s[n];
}
加我的域哦

5 条评论

  • 1