8 条题解

  • 4
    @ 2025-1-26 11:02:25
    #include <iostream>
    using namespace std;
    int n,r;
    int cnt;
    int maxx = -1;
    int XMAX = -1;
    int YMAX = -1;
    int f[5002][5002];
    int main()
    {
    	cin>>n>>r;
    	XMAX = r;
    	YMAX = r;
    	for(int i=0;i<n;i++)
    	{
    		int x,y,w;
    		cin>>x>>y>>w;
    		f[x+1][y+1] += w;
    		XMAX = max(XMAX,x+1);
    		YMAX = max(YMAX,y+1);
    
    	}
    	for(int i=1;i<=XMAX;i++)
    	{
    		for(int j=1;j<=YMAX;j++)
    		{
    			f[i][j] += f[i-1][j] + f[i][j-1] - f[i-1][j-1];
    		}
    	}
    	
    	for(int i=r;i<=XMAX;i++)
    	{
    		for(int j=r;j<=YMAX;j++)
    		{
    			maxx=max(maxx,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]);
    		}
    	}
    	cout<<maxx<<endl;
    	return 0;
    }
    
    • 2
      @ 2025-3-5 17:32:03

      二位前缀

      #include<iostream>
      #include<algorithm>
      using namespace std;
      const int N=1e5+5,INF=0x3f3f3f3f;
      typedef long long LL;
      int n,x,y,v,r,ans=0;
      int f[9241][5780];
      int main()
      {
      	cin>>n>>r;
      	int a=r,b=r;
      	for(int i=1;i<=n;i++)
      	{
      		cin>>x>>y>>v;
      		x++,y++;
      		f[x][y]+=v;
      		a=max(a,x);b=max(b,y);
      	}
      	for(int i=1;i<=a;i++)for(int j=1;j<=b;j++)f[i][j]+=f[i-1][j]+f[i][j-1]-f[i-1][j-1];
      	for(int i=r;i<=a;i++)for(int j=r;j<=b;j++)ans=max(ans,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]);
      	cout<<ans;
      	return 0;
      }
      
      • 0
        @ 2026-11-1 18:43:23

        #include using namespace std; int n,r; int cnt; int maxx = -1; int XMAX = -1; int YMAX = -1; int f[5002][5002]; int main() { cin>>n>>r; XMAX = r; YMAX = r; for(int i=0;i<n;i++) { int x,y,w; cin>>x>>y>>w; f[x+1][y+1] += w; XMAX = max(XMAX,x+1); YMAX = max(YMAX,y+1);

        }
        for(int i=1;i<=XMAX;i++)
        {
        	for(int j=1;j<=YMAX;j++)
        	{
        		f[i][j] += f[i-1][j] + f[i][j-1] - f[i-1][j-1];
        	}
        }
        
        for(int i=r;i<=XMAX;i++)
        {
        	for(int j=r;j<=YMAX;j++)
        	{
        		maxx=max(maxx,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]);
        	}
        }
        cout<<maxx<<endl;
        return 0;
        

        }

        • -1
          @ 2025-3-29 18:46:13

          #include using namespace std; int n,r; int cnt; int maxx = -1; int XMAX = -1; int YMAX = -1; int f[5002][5002]; int main() { cin>>n>>r; XMAX = r; YMAX = r; for(int i=0;i<n;i++) { int x,y,w; cin>>x>>y>>w; f[x+1][y+1] += w; XMAX = max(XMAX,x+1); YMAX = max(YMAX,y+1);

          }
          for(int i=1;i<=XMAX;i++)
          {
          	for(int j=1;j<=YMAX;j++)
          	{
          		f[i][j] += f[i-1][j] + f[i][j-1] - f[i-1][j-1];
          	}
          }
          
          for(int i=r;i<=XMAX;i++)
          {
          	for(int j=r;j<=YMAX;j++)
          	{
          		maxx=max(maxx,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]);
          	}
          }
          cout<<maxx<<endl;
          return 0;
          

          }

          • -3
            @ 2024-3-29 18:32:40

            #include using namespace std; int n,r; // struct target{ // int x; // int y; // int w; // }a[10000]; int cnt; int maxx = -1; int XMAX = -1; int YMAX = -1; int f[5002][5002]; int main() { cin>>n>>r; XMAX = r; YMAX = r; for(int i=0;i<n;i++) { int x,y,w; cin>>x>>y>>w; f[x+1][y+1] += w; XMAX = max(XMAX,x+1); YMAX = max(YMAX,y+1);

            }
            

            // ]; f[1][0] += f[0][0]; // f[0][1] += f[0][0 for(int i=1;i<=XMAX;i++) { for(int j=1;j<=YMAX;j++) { f[i][j] += f[i-1][j] + f[i][j-1] - f[i-1][j-1]; } } // f[1][0] += f[0][0]; // f[0][1] += f[0][0]; // for(int i=1;i<=XMAX;i++) // { // for(int j=1;j<=YMAX;j++) // cout<<f[i][j]<<" "; // cout<<endl; // } for(int i=r;i<=XMAX;i++) { for(int j=r;j<=YMAX;j++) { maxx=max(maxx,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]); } } cout<<maxx<<endl; return 0; }``

            • -3
              @ 2023-5-2 20:20:17
              #include <iostream>
              using namespace std;
              int n,r;
              int cnt;
              int maxx = -1;
              int XMAX = -1;
              int YMAX = -1;
              int f[5002][5002];
              int main()
              {
              	cin>>n>>r;
              	XMAX = r;
              	YMAX = r;
              	for(int i=0;i<n;i++)
              	{
              		int x,y,w;
              		cin>>x>>y>>w;
              		f[x+1][y+1] += w;
              		XMAX = max(XMAX,x+1);
              		YMAX = max(YMAX,y+1);
              
              	}
              	for(int i=1;i<=XMAX;i++)
              	{
              		for(int j=1;j<=YMAX;j++)
              		{
              			f[i][j] += f[i-1][j] + f[i][j-1] - f[i-1][j-1];
              		}
              	}
              	
              	for(int i=r;i<=XMAX;i++)
              	{
              		for(int j=r;j<=YMAX;j++)
              		{
              			maxx=max(maxx,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]);
              		}
              	}
              	cout<<maxx<<endl;
              	return 0;
              }
              
              • -4
                @ 2024-10-29 20:15:30
                #include <iostream>
                using namespace std;
                int n,r;
                int cnt;
                int maxx = -1;
                int XMAX = -1;
                int YMAX = -1;
                int f[5002][5002];
                int main()
                {
                	cin>>n>>r;
                	XMAX = r;
                	YMAX = r;
                	for(int i=0;i<n;i++)
                	{
                		int x,y,w;
                		cin>>x>>y>>w;
                		f[x+1][y+1] += w;
                		XMAX = max(XMAX,x+1);
                		YMAX = max(YMAX,y+1);
                
                	}
                	for(int i=1;i<=XMAX;i++)
                	{
                		for(int j=1;j<=YMAX;j++)
                		{
                			f[i][j] += f[i-1][j] + f[i][j-1] - f[i-1][j-1];
                		}
                	}
                	
                	for(int i=r;i<=XMAX;i++)
                	{
                		for(int j=r;j<=YMAX;j++)
                		{
                			maxx=max(maxx,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]);
                		}
                	}
                	cout<<maxx<<endl;
                	return 0;
                }
                
                
                • -7
                  @ 2023-4-23 20:51:42
                  #include <iostream>
                  using namespace std;
                  int n,r;
                  // struct target{
                  // 	int x;
                  // 	int y;
                  // 	int w;
                  // }a[10000];
                  int cnt;
                  int maxx = -1;
                  int XMAX = -1;
                  int YMAX = -1;
                  int f[5002][5002];
                  int main()
                  {
                  	cin>>n>>r;
                  	XMAX = r;
                  	YMAX = r;
                  	for(int i=0;i<n;i++)
                  	{
                  		int x,y,w;
                  		cin>>x>>y>>w;
                  		f[x+1][y+1] += w;
                  		XMAX = max(XMAX,x+1);
                  		YMAX = max(YMAX,y+1);
                  
                  	}
                  // ];	f[1][0] += f[0][0];
                  // 	f[0][1] += f[0][0
                  	for(int i=1;i<=XMAX;i++)
                  	{
                  		for(int j=1;j<=YMAX;j++)
                  		{
                  			f[i][j] += f[i-1][j] + f[i][j-1] - f[i-1][j-1];
                  		}
                  	}
                  	// f[1][0] += f[0][0];
                  	// f[0][1] += f[0][0];
                  	// for(int i=1;i<=XMAX;i++)
                  	// {
                  	// 	for(int j=1;j<=YMAX;j++)
                  	// 		cout<<f[i][j]<<" ";
                  	// 	cout<<endl;
                  	// }
                  	for(int i=r;i<=XMAX;i++)
                  	{
                  		for(int j=r;j<=YMAX;j++)
                  		{
                  			maxx=max(maxx,f[i][j]-f[i-r][j]-f[i][j-r]+f[i-r][j-r]);
                  		}
                  	}
                  	cout<<maxx<<endl;
                  	return 0;
                  }``
                  
                  • 1

                  信息

                  ID
                  11
                  时间
                  1000ms
                  内存
                  128MiB
                  难度
                  4
                  标签
                  递交数
                  576
                  已通过
                  271
                  上传者