zoukankan      html  css  js  c++  java
  • Noip 2014 senior Day2 无线网络发射器选址(wireless)

    Noip 2014 senior Day2 无线网络发射器选址(wireless)

           这道题的大概意思呢就是说,你现在拥有一个路由器(每个都可以发送Wi-Fi),然后那个路由器有一定的范围(因为你又买不起覆盖那么远的),然而你有很多条街道上的很多个路口需要覆盖(随时都可以上网),所以你需要找到你能覆盖最多路口的安装地点方案数,以及路口数量。

           经过我详细的分析是不是豁然开朗!(不用你说我也知道是什么意思)怎么做呢?枚举答案就好了。我们在题目所说的那横竖129条街道上(共129 * 129的矩形)枚举,这里唯一需要注意的就是你向左或向右查找范围的时候,注意不要超出边界了。处理呢,一个是把所有的图都扩大,一个是对边界和当前值取一个最大、最小,这样就能保证边界的情况了。

      

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #define N 150
     6 #define inf 0x7fffffff
     7 #define pi acos(-1)
     8 using namespace std;
     9 
    10 inline long long read(){ 
    11     long long data=0,w=1; 
    12     char ch=0; 
    13     while(ch!='-' && (ch<'0' || ch>'9')) ch=getchar(); 
    14     if(ch=='-') w=-1,ch=getchar(); 
    15     while(ch>='0' && ch<='9') data=data*10+ch-'0',ch=getchar(); 
    16     return data*w;
    17 }
    18 
    19 inline void write(long long x)
    20 {
    21      if(x<0) putchar('-'),x=-x;
    22      if(x>9) write(x/10);
    23      putchar(x%10+'0');
    24 }
    25 
    26 int maps[N][N];
    27 int d,n;
    28 int xi,yi,ki;
    29 int sum,maxn;
    30 
    31 int main()
    32 {
    33     freopen("wireless.in","r",stdin);
    34     freopen("wireless.out","w",stdout);
    35     
    36     d = read();
    37     n = read();
    38     for(int i=1;i<=n;i++)
    39     {
    40         xi = read();
    41         yi = read();
    42         ki = read();
    43         maps[xi][yi] = ki;
    44     }
    45     for(int i=0;i<=128;i++)
    46     {
    47         for(int j=0;j<=128;j++)
    48         {
    49             long long aider = 0;
    50             for(int u=max(0,i-d);u<=min(128,i+d);u++)
    51             {
    52                 for(int v=max(0,j-d);v<=min(128,j+d);v++)
    53                 {
    54                     aider += maps[u][v];
    55                 }
    56             }
    57             if(aider > maxn)
    58             {
    59                 maxn = aider;
    60                 sum = 1;
    61             }
    62             else if(aider == maxn) sum++;
    63         }
    64     }
    65     write(sum);
    66     putchar(' ');
    67     write(maxn);
    68     
    69     return 0;
    70 }
  • 相关阅读:
    网络设备操作命令
    "Realtek PCIe GBE Family Controller"网卡抓带Vlan Tag的包
    ubuntu16.04 samba 配置
    readelf -s 命令‘symbol’名字显示不全
    APUE Unix环境高级编程读书笔记
    Jmeter之文件上传
    百度去广告chrome插件
    zookeeper的安装与使用
    spring中bean获取工具
    关于maven的一些记录
  • 原文地址:https://www.cnblogs.com/sin-mo/p/7191800.html
Copyright © 2011-2022 走看看