NOIP2014day2T1————無線網路發射器選址(wireless)
阿新 • • 發佈:2019-01-25
解析
沒什麼好說的,又是一道可以直接暴力的水題
(說得好像你一次就滿分似的)
讀題一定要認真,別像我完全沒看到邊界,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; }