zoukankan      html  css  js  c++  java
  • 洛谷 P2038 无线网络发射器选址 题解

    每日一题 day9 打卡

    Analysis

    这道题是个模拟,两个0~128( 注意不是1~128 )的循环枚举正方形中心点,判断正方形的边界,再用循环枚举公共场所的数量就好了。

    时间复杂度 < O (128 ² × 160 ² ) = O ( 419430400 ) 可以接受

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define maxn 128+10
    using namespace std;
    inline int read() 
    {
        int x=0;
        bool f=1;
        char c=getchar();
        for(; !isdigit(c); c=getchar()) if(c=='-') f=0;
        for(; isdigit(c); c=getchar()) x=(x<<3)+(x<<1)+c-'0';
        if(f) return x;
        return 0-x;
    }
    inline void write(int x)
    {
        if(x<0){putchar('-');x=-x;}
        if(x>9)write(x/10);
        putchar(x%10+'0');
    }
    int d,n;
    int map[maxn][maxn];
    int ans_num,ans_sum=-1;
    int main()
    {
        memset(map,0,sizeof(map));
        d=read();
        n=read();
        for(int i=1;i<=n;i++) 
        {
            int x=read(),y=read(),k=read();
            map[x][y]=k;
        }
        for(int i=0;i<=128;i++)
            for(int j=0;j<=128;j++)
            {
                int xi=0,yi=0,xj=0,yj=0,cnt=0;
                if(i-d<0) xi=0;
                else xi=i-d;
                if(i+d>128) yi=128;
                else yi=i+d; 
                if(j-d<0) xj=0;
                else xj=j-d;
                if(j+d>128) yj=128;
                else yj=j+d; 
                for(int ei=xi;ei<=yi;ei++)
                    for(int ej=xj;ej<=yj;ej++)
                    {
                        cnt+=map[ei][ej];
                    }
                if(cnt>ans_sum) 
                {
                    ans_sum=cnt;
                    ans_num=1;
                }
                else if(cnt==ans_sum) ans_num++;
            }
        write(ans_num);
        printf(" ");
        write(ans_sum);
        return 0;
    } 

     请各位大佬斧正(反正我不认识斧正是什么意思)

  • 相关阅读:
    vim删除以#,空格开头的行
    Element-ui 中对表单进行验证
    VUE页面实现加载外部HTML方法
    vue-cli2嵌入html
    文字环绕图片
    LocalDate计算两个日期相差天数
    springboot+vue脚手架使用nginx前后端分离
    通过 Netty、ZooKeeper 手撸一个 RPC 服务
    Spring Native 项目,把 Spring 项目编译成原生程序!
    印象笔记吐槽
  • 原文地址:https://www.cnblogs.com/handsome-zyc/p/11517560.html
Copyright © 2011-2022 走看看