当前位置: 首页 > news >正文

codevs 2620 战壕

时间限制: 1 s
 空间限制: 32000 KB
 题目等级 : 黄金 Gold
题目描述  Description

Smart和Sarah正在玩一个即时战略游戏。

Smart在他的基地附近建立了n个战壕,每个战壕都是一个独立的作战单位,射程可以达到无限,但是,战壕有一个弱点:就是只能攻击它的左下方,说白了就是横、纵坐标都不大于它的点。这样,Sarah就可以从别的地方进攻摧毁战壕,从而消灭Smart的部队。

战壕都有一个保护范围,同它的攻击范围一样,它可以保护处在它左下方的战壕。所有处于它保护范围的战壕都叫做它的保护对象。这样,Sarah就必须找到Smart的战壕中保护对象最多的战壕,从而优先消灭它。

现在,由于Sarah没有时间来计算,所以拜托你来完成这个任务:给出这n个战壕的坐标(xi、yi),要你求出保护对象个数为0,1,2……n-1的战壕的个数。

输入描述  Input Description

第一行,一个正整数n(1≤n≤5000)

接下来n行,每行两个数xi,yi,代表第i个点的坐标(1≤xi,yi≤32767)注意:可能包含多重战壕的情况(即有数个点在同一坐标)。

输出描述  Output Description

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

样例输入  Sample Input

5

1 1

5 1

7 1

3 3

5 5

样例输出  Sample Output

1

2

1

1

0

数据范围及提示  Data Size & Hint

时间限制

1s

 

树状数组 

屠龙宝刀点击就送

#include <algorithm>
#include <cstdio>
#define N 50005

struct node
{
    int x,y;
    bool operator<(node a)const
    {
        if(x!=a.x) return x<a.x;
        else return y<a.y;
    }
}zh[N];
using namespace std;
int n,tag[N],ans[N];
inline int lowbit(int x) {return x&(-x);}
inline int ask(int x)
{
    int ret=0;
    for(;x;x-=lowbit(x)) ret+=tag[x];
    return ret;
}
void modify(int x,int y)
{
    for(;x<=32767;x+=lowbit(x))
        tag[x]+=y;
}
int main(int argc,char *argv[])
{
    scanf("%d",&n);
    for(int i=1;i<=n;++i) scanf("%d%d",&zh[i].x,&zh[i].y);
    sort(zh+1,zh+1+n);
    for(int i=1;i<=n;++i)
    {
        ans[ask(zh[i].y)]++;
        modify(zh[i].y,1);
    }
    for(int i=0;i<n;++i) printf("%d\n",ans[i]);
    return 0;
}

 

转载于:https://www.cnblogs.com/ruojisun/p/7693528.html

相关文章:

  • vue-cli脚手架安装
  • keil 赋值之后再声明变量提示错误error: #268: declaration may not appear after executable statement in block...
  • 正质因数分解
  • 110. Balanced Binary Tree
  • 进程与fork()、wait()、exec函数组
  • Centos_linux系统的区别及实际查看
  • 给Extjs的window弹窗的关闭事件添加验证
  • mysql导入存储过程
  • 系统键盘按钮keyCode大全
  • while(*i++=*t++)都做了些什么。
  • 用call和ret实现子程序
  • 求二叉树高度
  • spring整合javaweb(第二版)
  • 转:依赖注入那些事儿
  • 只操作git(cmd)就可以使用git将项目上传到github
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 2019年如何成为全栈工程师?
  • crontab执行失败的多种原因
  • Joomla 2.x, 3.x useful code cheatsheet
  • JWT究竟是什么呢?
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Linux中的硬链接与软链接
  • Map集合、散列表、红黑树介绍
  • mysql常用命令汇总
  • MySQL数据库运维之数据恢复
  • php的插入排序,通过双层for循环
  • Python进阶细节
  • Redis的resp协议
  • scrapy学习之路4(itemloder的使用)
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 代理模式
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 汉诺塔算法
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 小程序开发中的那些坑
  • 译自由幺半群
  • 原生JS动态加载JS、CSS文件及代码脚本
  • ​业务双活的数据切换思路设计(下)
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #WEB前端(HTML属性)
  • #Z2294. 打印树的直径
  • (2020)Java后端开发----(面试题和笔试题)
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (翻译)terry crowley: 写给程序员
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (规划)24届春招和25届暑假实习路线准备规划
  • (十六)串口UART
  • (算法)Travel Information Center
  • (转)winform之ListView
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .net Stream篇(六)
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET建议使用的大小写命名原则