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;
    }
  • 相关阅读:
    Canvas 与 Image 相互转换
    oracle随笔
    QueryTask,FindTask,IdentifyTask三种查询的区别
    mysql命令
    mysql
    Delphi声明Record变量后直接初始化
    delphi实现映射和断开网络驱动器
    delphi的ArrayList
    Delphi判断一个文件是不是JPG图片
    Delphi 停靠技术的应用3(两个窗体停靠成PageControl样式, 分页停靠)
  • 原文地址:https://www.cnblogs.com/Shymuel/p/4393144.html
Copyright © 2011-2022 走看看