11 条题解

  • 0
    @ 2026-10-21 19:04:02
    #include<bits/stdc++.h>
    const int N = 105;
    int a[N][N];
    int dp[N][N];
    using namespace std;
    int main(){
    	int t;
        cin>>t;
        while(t--){
            int r,c;
            cin>>r>>c;
            for(int i=0;i<r;i++){
                for(int j=0;j<c;j++){
                    cin>>a[i][j];
                }
            }
            dp[0][0]=a[0][0];
            for(int j=1;j<c;j++){
                dp[0][j]=dp[0][j-1]+a[0][j];
            }
            for(int i=1;i<r;i++){
                dp[i][0]=dp[i-1][0]+a[i][0];
            }
            for(int i=1;i<r;i++){
                for(int j=1;j<c;j++){
                    dp[i][j]=a[i][j]+max(dp[i-1][j],dp[i][j-1]);
                }
            }
            cout<<dp[r-1][c-1]<<endl;
        }
        return 0;
    } 
    
    • 0
      @ 2026-8-6 15:31:44
      #include <iostream>
      #include <stdio.h>
      #include <string.h>
      #include <queue>
      #include <math.h>
      #include <vector>
      #include <algorithm>
      #include <iomanip>
      #include <stack>
      
      using namespace std;
      
      #define LL long long
      const int N =1e5+10;
      const int INF =0x3f3f3f3f;
      LL a[10010][10010];
      LL t,n,m,ans;
      int main(){
      	cin>>t;
      	while(t--){
      		cin>>n>>m;
      		for(LL i=1;i<=n;i++){
      			for(LL j=1;j<=m;j++){
      				cin>>a[i][j];
      				a[i][j]+=max(a[i-1][j],a[i][j-1]);
      			}
      		}
      		cout<<a[n][m]<<endl;
      	}
      	return 0;
      }
      //包AC!!!
      
      • -1
        @ 2025-9-21 18:33:43
        #define LL long long
        using namespace std;
        const int INF = 0x3f3f3f3f;
        const int N = 1e5 + 10;
        int a[105][105];
        int main()
        {
        	int t;
        	cin >> t;
        	while( t-- )
        	{
        		int r,c;
        		cin>>r>>c;
        		for(int i=1;i<=r;i++)
        		{
        			for(int j=1;j<=c;j++)
        			{
        				cin>>a[i][j];
        			}
        		}
        		for(int i=1;i<=r;i++)
        		{
        			for(int j=1;j<=c;j++)
        			{
        				a[i][j]+=max(a[i-1][j],a[i][j-1]);
        			}
        		}
        		cout<<a[r][c]<<endl;
        	}
        	return 0;
        }
        
        
        
        • -1
          @ 2025-9-21 18:17:30
          #include<bits/stdc++.h>
          #define endl '\n'
          using namespace std;
          const int N=1e5+5,INF=0x3f3f3f3f,MOD=1e9+7;
          const int dx[]={1,-1,0,0},dy[]={0,0,1,-1};
          typedef long long LL;
          int t,n,m;
          int main(){
          	ios::sync_with_stdio(false);
          	cin.tie(nullptr);cout.tie(nullptr);
          	cin>>t;
          	while(t--){
          		cin>>n>>m;
          		vector<vector<int>>dp(n+1,vector<int>(m+1));
          		for(int i=1;i<=n;i++)
          			for(int j=1;j<=m;j++){
          				cin>>dp[i][j];
          				dp[i][j]+=max(dp[i-1][j],dp[i][j-1]);
          			}
          		cout<<dp[n][m]<<endl;
          	}
          	return 0;
          }
          
          
        • -1
          @ 2025-6-13 13:03:41
          /****************************************
          Note:
          ****************************************/
          #include <queue>
          #include <math.h>
          #include <stack>
          #include <vector>
          #include <stdio.h>
          #include <iostream>
          #include <vector>
          #include <iomanip>
          #include <string.h>
          #include <cstring>
          #include <algorithm>
          #define int long long
          using namespace std;
          const int N = 1e6 + 10;
          const int INF = 0x3f3f3f3f;
          int n;
          int dp[1010][1010],num[1010][1010];
          int maxx;
          signed main(){
          	cin >> n;
          	while(n--){
          		int r,c;
          		cin >> r >> c;
          		for(int i=1;i<=r;i++)
          			for(int j=1;j<=c;j++)
          				cin >> num[i][j];
          		for(int i=1;i<=r;i++)
          			for(int j=1;j<=c;j++)
          				num[i][j] += max(num[i-1][j],num[i][j-1]);
          		cout << num[r][c] << endl;
          	}
          	return 0;
          }
          
          

          `

          • -1
            @ 2023-12-3 18:55:56
            /************************************
            Note Book:
            ************************************/
            #include <iostream>
            #include <cstdio>
            #include <iomanip>
            #include <cmath>
            #include <algorithm>
            #include <cstring>
            #include <string>
            #include <stack>
            #include <queue>
            #include <math.h>
            #define LL long long
            using namespace std;
            const int INF = 0x3f3f3f3f;
            const int N = 1e5 + 10;
            int a[105][105];
            int main()
            {
            	int t;
            	cin >> t;
            	while( t-- )
            	{
            		int n , m ;
            		cin >> n >> m;
            		for(int i = 1; i <= n; i++)
            		{
            			for(int j = 1; j <= m; j++)
            			{
            				cin >> a[i][j];
            			}
            		}
            		for(int i = 1; i <= n; i++)
            		{
            			for(int j = 1; j <= m; j++)
            			{
            				a[i][j] += max(a[i-1][j] , a[i][j-1]);
            			}
            		}
            		cout << a[n][m] << endl;
            	}
            	return 0;
            }
            
            • -1
              @ 2023-4-30 16:12:11
              #include<cstdio>
              #include<algorithm>
              #include<iostream>
              using namespace std;
              int f[1001][1001],r,c,i,j;
              int t;
              int main()
              {
              	scanf("%d",&t);
              	while(t--)
              	{
              		scanf("%d%d",&r,&c);
              		for(i=1;i<=r;++i)
              		{
              			for(j=1;j<=c;++j)
              			{
              				scanf("%d",&f[i][j]);
              			}
              		}
              		for(i=1;i<=r;++i)
              		{
              			for(j=1;j<=c;++j)
              			{
              				f[i][j]+=max(f[i-1][j],f[i][j-1]);
              			}
              		}
              		printf("%d\n",f[r][c]);
              	}
              	return 0;
              }
              
              • -1
                @ 2022-3-5 19:07:53
                #include <iostream>
                #include <stdio.h>
                #include <string.h>
                #include <queue>
                #include <math.h>
                #include <vector>
                #include <algorithm>
                #include <iomanip>
                #include <stack>
                
                using namespace std;
                
                #define LL long long
                const int N =1e5+10;
                const int INF =0x3f3f3f3f;
                LL a[10010][10010];
                LL t,n,m,ans;
                int main(){
                	cin>>t;
                	while(t--){
                		cin>>n>>m;
                		for(LL i=1;i<=n;i++){
                			for(LL j=1;j<=m;j++){
                				cin>>a[i][j];
                				a[i][j]+=max(a[i-1][j],a[i][j-1]);
                			}
                		}
                		cout<<a[n][m]<<endl;
                	}
                	return 0;
                }
                • -1
                  @ 2021-10-10 10:35:29
                  #include <iostream>
                  #include <stdio.h>
                  #include <string.h>
                  #include <math.h>
                  #include <queue>
                  #include <stack>
                  #include <algorithm>
                  const int N = 1e6 + 10;
                  using namespace std;
                  int t, n, m, dp[110][110], ans;
                  int read() {
                      char ch = getchar();
                      int f = 1, num = 0;
                  
                      while (ch < '0' || ch > '9') {
                          if (ch == '-')
                              f = -1;
                  
                          ch = getchar();
                      }
                  
                      while (ch >= '0' && ch <= '9') {
                          num = num * 10 + ch - '0';
                          ch = getchar();
                      }
                  
                      return num * f;
                  }
                  int main() {
                      t = read();
                  
                      while (t--) {
                          n = read(), m = read();
                  
                          for (int i = 1; i <= n; i++)
                              for (int j = 1; j <= m; j++)
                                  dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + read();
                  
                          printf("%d\n", dp[n][m]);
                      }
                  }
                  
                  • -1
                    @ 2021-10-10 10:34:33
                    #include <iostream>
                    #include <algorithm>
                    using namespace std;
                    const int N = 1e3 + 10; 
                    int a[N][N];
                    int main(){
                    	int n;
                    	cin >> n;
                    	for(int i = 1; i <= n; i++){
                    		for(int j = 1; j <= i; j++){
                    			cin >> a[i][j];
                    		}
                    	}
                    	for(int i = 1; i <= n; i++){
                    		for(int j = 1; j <= i; j++){
                    			a[i][j] = max(a[i-1][j-1], a[i-1][j]) + a[i][j];
                    		}
                    	}
                    	int maxx = 0;
                    	for(int i = 1; i <= n; i++){
                    		maxx = max(maxx, a[n][i]);
                    	}
                    	cout << maxx << endl;
                    }
                    
                    • -2
                      @ 2021-10-10 10:30:23
                      #include <math.h>
                      #include <stdio.h>
                      #include <iostream>
                      #include <string.h>
                      #include <algorithm>
                      using namespace std;
                      int a[105][105];
                      int main()
                      {
                          int t;
                          cin >> t;
                          while(t--)
                          {
                              int n , m;
                              cin >>n >> m;
                              for(int i = 1 ; i <= n ; i++)
                                  for(int j =1 ; j <= m ; j++)
                                      cin >> a[i][j];
                              for(int i = 1 ; i <= n ; i++)
                                  for(int j = 1 ;j <= m ; j++)
                                      a[i][j] += max(a[i-1][j] , a[i][j-1]);
                      
                              cout << a[n][m] << endl;
                          }
                          return 0;
                      }
                      
                      • 1

                      信息

                      ID
                      1341
                      时间
                      1000ms
                      内存
                      256MiB
                      难度
                      4
                      标签
                      递交数
                      485
                      已通过
                      208
                      上传者