按区间r降序排列,r相同按照l升序排列,两个区间相同时特判一下即可

/*
给定n个闭区间[l,r],如果对区间[li,ri],[lj,rj]来说,
有区间j严格包含(两个边界不能同时重合)在区间i内,那么区间i大于区间j
问区间有多少个区间大于区间i
读入所有的区间,按r降序,l升序
然后按顺序访问每个区间,
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxn 100010
struct node{int l,r,id;bool operator<(const node & a)const {if(r==a.r) return l<a.l;return r>a.r;}
}inv[maxn];
int n,ans[maxn],bit[maxn];
void add(int x){for(int i=x;i<=n;i+=i&-i)bit[i]+=1;
}
int query(int x){int res=0;for(int i=x;i;i-=i&-i)res+=bit[i];return res;
}
int main(){while(scanf("%d",&n),n){memset(bit,0,sizeof bit);for(int i=1;i<=n;i++){scanf("%d%d",&inv[i].l,&inv[i].r);inv[i].l++;inv[i].r++;inv[i].id=i;}sort(inv+1,inv+1+n);memset(ans,0,sizeof ans);inv[0].l=-1;inv[0].r=-1;for(int i=1;i<=n;i++){if(inv[i].l==inv[i-1].l && inv[i].r==inv[i-1].r)ans[inv[i].id]=ans[inv[i-1].id];else ans[inv[i].id]=query(inv[i].l);add(inv[i].l);}for(int i=1;i<n;i++) printf("%d ",ans[i]);printf("%d\n",ans[n]);}return 0;
}

转载于:https://www.cnblogs.com/zsben991126/p/10079688.html

poj2481树状数组解二维偏序相关推荐

  1. Nowcoder farm ( 树状数组、二维前缀和、二维偏序 )

    题目链接 分析 : 最简单的想法当然就是去模拟 直接对每个施肥料的操作进行模拟.然后计算贡献 但是这显然会超时.这题需要换一个思维 对于一个土地(也就是二维平面上的一个点)的种类是 T' 如果它被操作 ...

  2. hdu 1166 树状数组解

    树状数组解决   (关于树状数组参考大佬的博客https://www.cnblogs.com/hsd-/p/6139376.html) 然后就很好理解这题了,代码附上 /*hdu 1166 单点修改, ...

  3. CDQ分治解二维偏序

    Stars-POJ 2352 求解没有重复项的包含子集的个数. 我们直接求其贡献,对于一维偏序x坐标进行升序排序,对于二维偏序y坐标进行分治,我们从递归至底层,然后向上更新,对于左右子树,左子树的x一 ...

  4. 洛谷 P2163 [SHOI2007]园丁的烦恼 (离线sort,树状数组,解决三维偏序问题)

    P2163 [SHOI2007]园丁的烦恼 题目描述 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草. 有一天国王漫步在花园 ...

  5. 【数据结构】二维数点/二维偏序

    该内容需要有一定的数据结构基础,前置知识:二维前缀和.树状数组.线段树.扫描线等 二维数点的解法较多,可自行查找和学习其他解法 二维数点简介 二维数点又称二维偏序,它是这样一类问题,给出一个二维平面內 ...

  6. 下拉菜单实现树状结构_二叉索引树(树状数组)的原理

    背景 了解到二叉索引树这个数据结构,是在 leetcode 的 307 题,题目是要求实现一个数据结构,可以返回数组任意区间的和以及更新数组的某个值. 307.Range Sum Query - Mu ...

  7. AcWing 蓝桥杯AB组辅导课 05、树状数组与线段树

    文章目录 前言 一.树状数组 1.1.树状数组知识点 1.2.树状数组代码模板 模板题:AcWing 1264. 动态求连续区间和 例题 例题1.AcWing 1265. 数星星[中等,信息学奥赛一本 ...

  8. 快乐地打牢基础(4)——树状数组

    在解题的过程中,我们想维护一个数组的前缀和s[i] = A[1] + A[2] +-+A[i].我们改变任意一个A[i],那么S[i]之后都会发生变化,朴素写法调整前缀和S最坏的情况需要O(n)的时间 ...

  9. NEFU大一暑假集训-树状数组

    题集链接 目录: OP A Ultra-QuickSort 题目大意 思路 代码 B Stars 题目大意 思路 代码 C Mobile phones 题目大意 思路 代码 D Cows 题目大意 思 ...

最新文章

  1. 深入理解angularjs $watch ,$apply 和 $digest --- 理解数据绑定过程
  2. Python调用HTTP接口并传递cookie
  3. 【Android】Android Service 服务
  4. Red Hat Linux 5.4 开启xdm远程访问
  5. 技术要点|Python监控学生端电脑屏幕自动识别学习状态
  6. c语言从键盘输入数据数组,//从键盘上输入若干整数,并将其存入数组中,并统计输入数据的个...
  7. Spring AOP失效之谜
  8. 如何检查linux 下是否安装java(jdk)环境
  9. 80286 与 80386,实模式与保护模式切换编程
  10. 哈夫曼树及哈夫曼编码(10分)
  11. 淘宝放大镜插件(vue-piczoom)
  12. 积极的面对生活,勇敢的接受挑战,保持乐观的心态!
  13. 我在CSDN学python-8
  14. Week 7 - Distributional Representations(分布表示)
  15. centOS 8 重启网络服务 / 重启网卡
  16. java pda开发_《Java 手机/PDA 程序设计入门》读书笔
  17. 基于opencv和Dlib的人脸交换(face swap)
  18. 自学security笔记
  19. fw:爆笑网文:生于80年代 我们怎么就这么倒霉
  20. 计算机网络学习④——Cisco Packet Tracer 实验

热门文章

  1. Java中proc是什么意思,Java PatientProcedureVo.setSignifProc方法代码示例
  2. php中的解析范围符,PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】...
  3. linux6 rac 11g,oracle linux 6.操作系统oracle 11g rac
  4. java抠图边框颜色处理_java 实现抠图(项目应用场景:抠图章)
  5. mysql汉字格式_mysql 中的varchar255 uft-8 的格式到底能放多少汉字
  6. Spring Bean的循环依赖解决方案
  7. MYSQL索引创建与删除
  8. java 队列的使用
  9. Mysql删除数据时出现执行很慢并且删除失败--线程堵塞
  10. Android开发笔记(五十三)远程接口调用AIDL