5 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;
      }
      
      • 0
        @ 2026-7-14 14:17:28

        • -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
            92
            Accepted
            36
            Uploaded By