2 条题解

  • 0
    @ 2024-10-26 14:19:19
    #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
      @ 2023-12-23 9:14:12

      这题是从升级版改的,所以有点奇怪

      #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
      上传者