[noip]2014複賽提高組day2 無線網路發射器選址
阿新 • • 發佈:2018-12-13
本蒟蒻自己想的方法,非常好,哈哈哈哈哈哈哈
#include<iostream>//生死有命,富貴在天!! #include<cstdio> using namespace std; int d,n,x,y,k,s[10000][10000],x1,y1,max1,tims; int main() { //freopen("wireless.in","w",stdin); //freopen("wireless.out","r",stdout); cin>>d;cin>>n; for(int i=1;i<=n;i++) { cin>>x>>y>>k; s[x][y]+=k; for(int j=0;j<=d;j++) { x1=x-j; for(int m=0;m<=d;m++) { y1=y-m; if(x1!=x||y1!=y) if(x1>=0&&y1>=0&&x1<129&&y1<129)//注意邊界 s[x1][y1]+=k; } } for(int j=0;j<=d;j++) { x1=x-j; for(int m=0;m<=d;m++) { y1=y+m; if(x1!=x&&y1!=y) if(x1>=0&&y1>=0&&x1<129&&y1<129) s[x1][y1]+=k; } } for(int j=0;j<=d;j++) { x1=x+j; for(int m=0;m<=d;m++) { y1=y+m; if(x1!=x||y1!=y) if(x1>=0&&y1>=0&&x1<129&&y1<129) s[x1][y1]+=k; } } for(int j=0;j<=d;j++) { x1=x+j; for(int m=0;m<=d;m++) { y1=y-m; if(x1!=x&&y1!=y) if(x1>=0&&y1>=0&&x1<129&&y1<129) s[x1][y1]+=k; } } } for(int i=0;i<129;i++) for(int j=0;j<129;j++) { max1=max(max1,s[i][j]); } for(int i=0;i<129;i++) for(int j=0;j<129;j++) if(s[i][j]==max1) tims++; cout<<tims<<" "<<max1; //fclose(stdin);fclose(stdout); return 0; }