求调,二维前缀和80分
查看原帖
求调,二维前缀和80分
363669
hwwqy楼主2022/8/12 10:50
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[300][300],qz[300][300],d,n,mx=-1,ans=0,ans2;
signed main()
{
	cin>>d>>n;
	//d;
	for(int i=1;i<=n;i++)
	{
		int x,y,k;
		cin>>x>>y>>k;
		a[x+30][y+30]=k;
	}
	for(int i=30;i<200;i++)
	{
		for(int j=30;j<200;j++)
		{
			qz[i][j]=qz[i-1][j]+qz[i][j-1]-qz[i-1][j-1]+a[i][j];
			//cout<<qz[i][j]<<" "<<i<<" "<<j<<endl;
		}
	}
	for(int i=30;i<158;i++)
	{
		for(int j=30;j<158;j++)
		{
			int qzh=qz[i+d][j+d]-qz[i+d][j-d-1]-qz[i-d-1][j+d]+qz[i-d-1][j-d-1];
			//if(qzh!=0)cout<<qzh<<endl;
			if(qzh==mx)
			{
			//	cout<<i<<" "<<j<<endl;
				ans++;
			}
			if(qzh>mx)
			{
				mx=qzh;
				ans=1;
			}
			
		}
	}
	cout<<ans<<" "<<mx;
    return 0;
}

2022/8/12 10:50
加载中...