2 条题解

  • 1
    @ 2025-4-20 9:39:02

    人机

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int f[305][305];
    int s;
    int n,m;
    int ans;
    int V;
    int main() {
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>f[i][i];
    		ans=max(ans,f[i][i]);
    		
    	}
    	for(int i=n-1;i>=1;i--){
    		for(int j=i+1;j<=n;j++){
    			for(int k=i;k<j;k++){
    				if(f[i][k]==f[k+1][j]){
    					f[i][j]=max(f[i][j],f[i][k]+1);
    					ans=max(ans,f[i][j]);				}
    			}
    		}
    	}
    	cout<<ans;
        return 0;
    }
    
    • -1
      @ 2024-7-28 15:17:29
      #include <iostream>
      #include <algorithm>
      #include <cmath>
      #include <cstdio>
      #include <queue>
      #include <map>
      #include <cstring>
      #include <iomanip>
      #include <vector>
      #include <stack>
      #define LL long long
      using namespace std;
      const int N = 1e3 + 5;
      const int M = 1e6 + 5;
      const int INF = 0x3f3f3f3f;
      int f[N][N];
      int main()
      {
          int n, ans = 0;
          scanf("%d", &n);
          for(int i = 1; i <= n; i++)
      	{
              scanf("%d", f[i] + i);
              ans = max(ans, f[i][i]);
          }
          for(int i = 2; i <= n; i++)
      	{ 
              for(int l = 1; l + i -1 <= n; l++)
      		{
                  int r = l + i - 1;
                  for(int k = l; k < r; k++)
                  {
                      if(f[l][k] == f[k + 1][r] && f[l][k])
      				{
                          f[l][r] = max(f[l][r], f[l][k] + 1);
                          ans = max(ans, f[l][r]);
                      }
      			}
              }
      	}
          cout << ans;		
          return 0;
      }
      
      • 1

      信息

      ID
      2249
      时间
      1000ms
      内存
      256MiB
      难度
      6
      标签
      递交数
      28
      已通过
      11
      上传者