2 条题解
-
0
#include<bits/stdc++.h> #define r(a) scanf("%d",&a) using namespace std; int n,f[2005],ma; string a[2005]; int main(){ ios::sync_with_stdio(0); cin>>n; for(int i=1;i<=n;i++){ cin>>a[i];f[i]=1; } for(int i=1;i<=n;i++){ for(int j=1;j<i;j++){ if(a[i].substr(0,a[j].size())==a[j]){ f[i]=max(f[i],f[j]+1); } } ma=max(ma,f[i]); } cout<<ma; return 0; }
-
0
这题是从升级版改的,所以有点奇怪
#include<bits/stdc++.h> using namespace std; struct k{ string AKIOI; int len; }a[2002]; inline bool Find(const string aa,const string bb) { string s; for(int i=0;i<aa.size()&&i<bb.size();++i) s+=bb[i]; if(s==aa)return 1; return 0; } int main() { int n,l,maxn=-1,i,j; cin>>n; for(i=1;i<=n;++i) { cin>>a[i].AKIOI; a[i].len=1; } for(i=n-1;i>=1;--i) { l=0; for(j=i+1;j<=n;++j) { if(Find(a[i].AKIOI,a[j].AKIOI)&&a[j].len>l) l=a[j].len; } if(l>0) a[i].len=l+1; } for(i=1;i<=n;++i) maxn=max(maxn,a[i].len); cout<<maxn; return 0; }
- 1
信息
- ID
- 16
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 119
- 已通过
- 73
- 上传者