zoukankan      html  css  js  c++  java
  • 弱弱的战壕

    描述
    永恒和mx正在玩一个即时战略游戏,名字嘛~~~~~~恕本人记性不好,忘了-_-b。
    mx在他的基地附近建立了n个战壕,每个战壕都是一个独立的作战单位,射程可以达到无限(“mx不赢定了?!?”永恒ftING...@_@)。
    但是,战壕有一个弱点,就是只能攻击它的左下方,说白了就是横纵坐标都不大于它的点(mx:“我的战壕为什么这么菜”ToT)。这样,永恒就可以从别的地方进攻摧毁战壕,从而消灭mx的部队。
    战壕都有一个保护范围,同它的攻击范围一样,它可以保护处在它左下方的战壕。所有处于它保护范围的战壕都叫做它的保护对象。这样,永恒就必须找到mx的战壕中保护对象最多的点,从而优先消灭它。
    现在,由于永恒没有时间来计算,所以拜托你来完成这个任务:
    给出这n个战壕的坐标xi、yi,要你求出保护对象个数为0,1,2……n-1的战壕的个数。
    格式
    输入格式
    第一行,一个正整数n(1<=n<=15000)
    接下来n行,每行两个数xi,yi,代表第i个点的坐标
    (1<=xi,yi<=32000)
    注意:可能包含多重战壕的情况(即有数个点在同一坐标)
    输出格式

    输出n行,分别代表保护对象为0,1,2……n-1的战壕的个数。

    题目分析:这题太水了……虽然上面说是树状数组,但暴力就过了……

    代码如下:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    int x[32001],y[32001],ans[15001];
    
    int main()
    {
     int n;
     scanf("%d",&n);
     for (int i=1; i<=n; i++) scanf("%d%d",&x[i],&y[i]);
     for (int i=1; i<=n; i++)
     {
       int total=0;
       for (int j=1; j<=n; j++) if (x[j]<=x[i] && y[j]<=y[i] && i!=j) total++;  
       ans[total]++;
     }
     for (int i=0; i<n; i++) printf("%d
    ",ans[i]);
     return 0;
    }
  • 相关阅读:
    oracle字符集查看修改
    oracle查看所有表及字段
    oracle重新启动步骤
    oracle job 定时执行 存储过程
    oracle导入导出exp,imp
    oracle创建表空间
    Oracle Dataguard HA (主备,灾备)方案部署调试
    Moving Tables-贪心
    Windows下Android开发环境配置
    在单进程单线程或单进程多线程下实现log4cplus写日志并按大小切割
  • 原文地址:https://www.cnblogs.com/Shymuel/p/4393144.html
Copyright © 2011-2022 走看看