zoukankan      html  css  js  c++  java
  • luogu2038 [NOIp2014]无线网络发射器选址 (前缀和)

    貌似不用做前缀和也能过?

     1 #include<bits/stdc++.h>
     2 #define pa pair<int,int>
     3 #define CLR(a,x) memset(a,x,sizeof(a))
     4 using namespace std;
     5 typedef long long ll;
     6 const int maxn=150;
     7 
     8 inline ll rd(){
     9     ll x=0;char c=getchar();int neg=1;
    10     while(c<'0'||c>'9'){if(c=='-') neg=-1;c=getchar();}
    11     while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
    12     return x*neg;
    13 }
    14 
    15 int d,N;
    16 ll sum[maxn][maxn];
    17 
    18 int main(){
    19     int i,j,k;
    20     d=rd(),N=rd();
    21     for(i=1;i<=N;i++){
    22         int a=rd(),b=rd(),c=rd();
    23         sum[a][b]=c;
    24     }
    25     for(i=0;i<=128;i++){
    26         for(j=0;j<=128;j++){
    27             sum[i][j]+=(i?sum[i-1][j]:0)+(j?sum[i][j-1]:0)-(i&&j?sum[i-1][j-1]:0);
    28         }
    29     }
    30     ll mm=0;int cnt=0;
    31     for(i=0;i<=128;i++){
    32         for(j=0;j<=128;j++){
    33             int i0=max(0,i-d),j0=max(0,j-d),ii=min(128,i+d),jj=min(128,j+d);
    34             ll x=sum[ii][jj]-(j0?sum[ii][j0-1]:0)-(i0?sum[i0-1][jj]:0)+(i0&&j0?sum[i0-1][j0-1]:0);
    35             if(x>mm) mm=x,cnt=1;
    36             else if(x==mm) cnt++;
    37         }
    38     }
    39     printf("%d %lld
    ",cnt,mm);
    40     return 0;
    41 }
  • 相关阅读:
    git常用命令
    代码实现-栈、队列、双端队列
    websocket实现简单的单聊
    websocket实现简单的群聊
    成员
    反射
    类与类之间的关系
    常用模块-02
    模块
    微信小程序表单多页面步骤提交
  • 原文地址:https://www.cnblogs.com/Ressed/p/9703813.html
Copyright © 2011-2022 走看看