博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【POJ 2481】Cows(离散化+树状数组)
阅读量:5336 次
发布时间:2019-06-15

本文共 1255 字,大约阅读时间需要 4 分钟。

就是stars的变式。

把e,s当成一个点的横坐标,纵坐标后,经过画图会发现,所要求的点,其实就是一个点的左上方。

按y从大到下排序,然后树状数组维护一下类似桶的东西即可。

#include
#include
#include
#include
using namespace std;int n,tree[100015],val[100015];struct node{ int s,e,num;}cow[100015]; inline bool cmp(const node &a,const node &b){ if(a.e!=b.e) return a.e>b.e; return a.s
0;i-=lowbit(i)) { sum+=tree[i]; } return sum;}int main(){ while(cin>>n&&n) { memset(cow,0,sizeof(cow)); memset(val,0,sizeof(val)); memset(tree,0,sizeof(tree)); for(int i=1;i<=n;i++) { scanf("%d%d",&cow[i].s,&cow[i].e); cow[i].s++,cow[i].e++; cow[i].num=i; } sort(cow+1,cow+n+1,cmp); //终极目标:左上角 update(cow[1].s,1); val[cow[1].num]=0; for(int i=2;i<=n;i++) { if(cow[i].s==cow[i-1].s&&cow[i].e==cow[i-1].e) { val[cow[i].num]=val[cow[i-1].num]; update(cow[i].s,1); continue; } val[cow[i].num]=query(cow[i].s); update(cow[i].s,1); } cout<

转载于:https://www.cnblogs.com/Patrickpwq/articles/9424472.html

你可能感兴趣的文章
Winform 菜单和工具栏控件
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
java中遍历属性字段及值(常见方法)
查看>>
深入理解jQuery框架-框架结构
查看>>
YUI3自动加载树实现
查看>>
python知识思维导图
查看>>
当心JavaScript奇葩的逗号表达式
查看>>
App Store最新审核指南(2015年3月更新版)
查看>>
织梦MIP文章内容页图片适配百度MIP规范
查看>>
[Kali_BT]通过低版本SerialPort蓝牙渗透功能手机
查看>>
C语言学习总结(三) 复杂类型
查看>>
HNOI2018
查看>>
【理财】关于理财的网站
查看>>
Ubunt中文乱码
查看>>
《当幸福来敲门》读后
查看>>
【转】系统无法进入睡眠模式解决办法
查看>>
省市县,循环组装,整合大数组
查看>>