NOIP2014day2T1————无线网路发射器选址(wireless)

又是你谷

解析

没什么好说的,又是一道可以直接暴力的水题
(说得好像你一次就满分似的)
读题一定要认真,别像我完全没看到边界,WA了
小于0就修改为0,大于128就修改为128
然后我直接去染的色,半径为d时,能到达这个点的位置都加上这个点的大小
一边染一边处理就行了

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int d,n,ans_num,ans_max;
int a[150][150],wifi[150][150];
int main()
{
//	freopen("wireless.in","r",stdin);
//	freopen("wireless.out","w",stdout);
	
	int x,y,z;
	scanf("%d",&d);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d%d",&x,&y,&z);
		a[x][y]=z;
		int x1=x-d,x2=x+d,y1=y-d,y2=y+d;
		if(x1<0) x1=0;
		if(x2>128) x2=128;
		if(y1<0) y1=0;
		if(y2>128) y2=128;
		for(int j=x1;j<=x2;j++)
		  for(int k=y1;k<=y2;k++)
		  {
		  	wifi[j][k]+=z;
		  	if(wifi[j][k]==ans_max) ans_num++;
		  	 else if(wifi[j][k]>ans_max)
		  	 {
		  		ans_max=wifi[j][k];
		  		ans_num=1;//这里一定是等于1,不能直接清零
		  	 }
		  }
	}
	printf("%d %d\n",ans_num,ans_max);
	
//	fclose(stdin);fclose(stdout);
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/qq_42920131/article/details/82951081