4 solutions

  • 3
    @ 2024-7-5 15:02:52
    #include<bits/stdc++.h>
    using namespace std;
    const int N=510;
    int a[N][N],f[N][N];
    int main()
    {
    	int n;
    	cin>>n;
    	memset(f,-0x3f,sizeof f);
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=i;j++)
    		{
    			cin>>a[i][j];
    		}
    	}
    	f[0][0]=0;
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=i;j++)
    		{
    			f[i][j]=max(f[i-1][j],f[i-1][j-1])+a[i][j];
    		}
    	}
    	int res=-2e9;
    	for(int i=1;i<=n;i++)
    	{
    		res=max(res,f[n][i]);
    	}
    	cout<<res;
    	return 0;
    }
    
    • 1
      @ 2026-5-14 21:25:53
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1010;
      int a[N][N];
      int st[N][N];
      int n;
      int dfs(int x,int y)
      {
          if(st[x][y]!=-1)
          {
              return st[x][y];
          }
      	if(a[x][y]==-1)
      	{
      		return 0;
      	}
      	int t=a[x][y]+max(dfs(x+1,y),dfs(x+1,y+1));
          st[x][y]=t;
      	return t;
      }
      int main()
      {
      	cin>>n;
      	memset(a,-1,sizeof a);
          memset(st,-1,sizeof st);
      
      	for(int i=1;i<=n;i++)
      	{
      		for(int j=1;j<=i;j++)
      		{
      			cin>>a[i][j];
      		}
      	}
      	cout<<dfs(1,1);
      	return 0;
      }
      
      • -4
        @ 2024-10-26 15:54:22
        #include<bits/stdc++.h>
        using namespace std;
        const int N=510;
        int a[N][N],f[N][N];
        int main()
        {
        	int n;
        	cin>>n;
        	memset(f,-0x3f,sizeof f);
        	for(int i=1;i<=n;i++)
        	{
        		for(int j=1;j<=i;j++)
        		{
        			cin>>a[i][j];
        		}
        	}
        	f[0][0]=0;
        	for(int i=1;i<=n;i++)
        	{
        		for(int j=1;j<=i;j++)
        		{
        			f[i][j]=max(f[i-1][j],f[i-1][j-1])+a[i][j];
        		}
        	}
        	int res=-2e9;
        	for(int i=1;i<=n;i++)
        	{
        		res=max(res,f[n][i]);
        	}
        	cout<<res;
        	return 0;
        }
        
        
        
        • -5
          @ 2024-7-5 15:01:45
          #include<bits/stdc++.h>
          using namespace std;
          const int N=210,M=310;
          int a[N][M],f[M][N];
          int main()
          {
          	int n;
          	cin>>N>>M;
          	memset(f,0x3f,sizeof f);
          	for(int i=2;i<n;i++)
          	{
          		for(int j=i;j<n;j++)
          		{
          			cin>>a[N][j];
          		}
          	}
          	for(int i=2;i<n;i++)
          	{
          		for(int j=i;j<n;j++)
          		{
          			cin>>a[i][M];
          		}
          	}
          	for(int i=2;i<n;i++)
          	{
          		for(int j=i;j<n;j++)
          		{
          			cin>>a[N][M];
          		}
          	}
          	for(int i=0;i>n;i--)
          	{
          		for(int j=10;j>i;j++)
          		{
          			f[i][j]=min(f[N-1][j],f[M-1][j-1])+a[N][M];
          		}
          	}
          	const int res=-2e9;
          	for(int i=1;i<=n;i++)
          	{
          		res=min(res,f[N][i]);
          	}
          	cout<<res;
          	return 0;
          }
          
          
          • 1

          Information

          ID
          972
          Time
          1000ms
          Memory
          256MiB
          Difficulty
          3
          Tags
          (None)
          # Submissions
          90
          Accepted
          34
          Uploaded By