传送门

题意:是中文,自己看.


定义rkirk_irki​是第iii个人的编号

每次找到一些人iii满足不存在一个jjj使得aj>aia_j>a_iaj​>ai​且bj>aib_j>a_ibj​>ai​

发现这样并不好操作,没有办法每次选一些人出来标记.

换个说法,iii的rkirk_irki​是那些满足aj>aia_j>a_iaj​>ai​且bj>aib_j>a_ibj​>ai​人的max(rkj)+1max(rk_j)+1max(rkj​)+1

由于是二维偏序的,所以先按照aaa从大到小排序

此时考虑第iii个人,由于[i+1,n][i+1,n][i+1,n]个人一定不是我们想要的那些jjj

而[1,i−1][1,i-1][1,i−1]中,只有满足bj>bib_j>b_ibj​>bi​的才是符合条件的jjj,才可以更新。

那么,可以以bib_ibi​离散化后为下标,rkirk_irki​为值维护一颗线段树

按照aia_iai​从大到小依次加入

那么第iii个人的rkrkrk值肯定不会被aja_jaj​小于自己的那些jjj影响

然后去那些bjb_jbj​大于自己的去找一个max(rkj)max(rk_j)max(rkj​),自己的值就再往上加一就好了

题目保证了所有a,ba,ba,b不相等

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mid (l+r>>1)
#define ls (rt<<1)
#define rs (rt<<1|1)
#define lson ls,l,mid
#define rson rs,mid+1,r
const int maxn = 1e5+10;
struct p{ int x,y,id; }s[maxn];
int b[maxn],n,ans[maxn],w[maxn<<2];
bool com(p a,p b){ return a.x>b.x; }
void update(int rt,int l,int r,int x,int val)
{if( l>x||r<x )   return;if( l==r && l==x ){ w[rt]=val; return; }update(lson,x,val); update(rson,x,val);w[rt] = max( w[ls],w[rs] );
}
int ask(int rt,int l,int r,int L,int R)
{if( l>=L&&r<=R )   return w[rt];if( l>R||r<L )   return 0;return max( ask(lson,L,R),ask(rson,L,R) );
}
signed main()
{cin >> n;for(int i=1;i<=n;i++){cin >> s[i].x >> s[i].y;s[i].id = i, b[i] = s[i].y;}sort( s+1,s+1+n,com );sort( b+1,b+1+n );for(int i=1;i<=n;i++)s[i].y = lower_bound( b+1,b+1+n,s[i].y )-b;for(int i=1;i<=n;i++){ans[ s[i].id ] = ask(1,1,n,s[i].y,n )+1;update( 1,1,n,s[i].y,ans[ s[i].id ] );}for(int i=1;i<=n;i++)  cout << ans[i] << endl;
}

牛客小白月赛16 F-小石的妹子(二维偏序+线段树)相关推荐

  1. 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)

    链接:https://ac.nowcoder.com/acm/contest/392/F 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536 ...

  2. 牛客小白月赛16 小石的签到题(博弈)

    牛客小白月赛16 小石的签到题 链接:https://ac.nowcoder.com/acm/contest/949/A来源:牛客网 题目描述 输入描述: 共一行,输入一个数 nnn . 输出描述: ...

  3. 牛客小白月赛61 F.选座椅(双指针)

    牛客小白月赛61 F.选座椅(双指针) 显然 ( l , r ) (l,r) (l,r)满足 ( l , r + 1 ) (l,r+1) (l,r+1)满足. 那么可以考虑双指针,枚举 l l l,然 ...

  4. 牛客小白月赛2 F.黑黑白白

    牛客小白月赛2 F.黑黑白白 题目链接 题目描述 艮为山,动静得宜,适可而止:兑为泽,刚内柔外,上下相和. 艮卦:兼山,艮:君子以思不出其位.财帛常打心头走,可惜眼前难到手,不如意时且忍耐,逢着闲事休 ...

  5. 牛客小白月赛16练习

    G-小石的图形 链接:https://ac.nowcoder.com/acm/contest/949/G 来源:牛客网 题目描述 小石想在一面墙旁边建造一段长度为 n 的篱笆来围出一块地(如图). 求 ...

  6. 牛客小白月赛9: F. 暴力出奇迹(思维题)

    链接:https://ac.nowcoder.com/acm/contest/275/F 来源:牛客网 题目描述 给定一个序列,寻找一对l,r,满足1 ≤ l ≤ r ≤ n 最大化的值 其中表示将a ...

  7. 牛客小白月赛17 F小黄鸭(计算几何+积分+二分)

    链接:https://ac.nowcoder.com/acm/contest/1085/F 来源:牛客网 题目描述 小sun的寝室有一只小黄鸭,小黄鸭浮在水面上的样子特别可爱,现在小sun有一个问题: ...

  8. 牛客小白月赛16——D 小阳买水果

    链接:https://ac.nowcoder.com/acm/contest/949/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  9. 牛客小白月赛16 D-小阳买水果(单调队列)

    链接:https://ac.nowcoder.com/acm/contest/949/D 来源:牛客网 题目描述 水果店里有 n个水果排成一列.店长要求顾客只能买一段连续的水果. 小阳对每个水果都有一 ...

最新文章

  1. windows下Python到linux运行遇到的字符编码问题
  2. 等式约束和不等式约束下的KKT条件求法
  3. 山师计算机试题答案,山师计算机应用技术试题及答案
  4. html的表单图形验证码怎么做,django中简单图形验证码实现
  5. python定时执行脚本实例
  6. 2018/12/18 Mac 版 VMWare配置VMNet8 成功版
  7. 利用ipsec配置tcp/ip用于安全连接
  8. XP系统中如何查哪些网址曾经远程连接过本机器。
  9. 认证Authentication
  10. 教你如何使用Ip地址进行精准定位
  11. 纯CSS实现button按钮
  12. python 金融量化盘后分析系统V0.48
  13. 淘宝网打开很慢、特别慢的完美解决方法
  14. 解决启动eureka报错Unable to start web ... nested exception is org.springframework.boot.web.server.WebS
  15. 大学计算机基础及应用课后题答案第二版,《大学计算机基础》课后题答案完整版...
  16. java实训意义_java实习心得体会
  17. leetcode954.二倍数对数组C++(绝对值排序)
  18. scrapy 抓取拉钩 ajax
  19. Window系统中Hosts文件介绍
  20. 马云给员工的超牛演讲

热门文章

  1. html提醒框ui,web前端:layui提示框事件
  2. 安装和配置Tripwire
  3. 如何在Viz Ticker Feed中实现对xml数据源的自动导入
  4. heic图片转换成jpg格式工具
  5. java三子棋人机游戏_C语言编程入门游戏《三子棋》
  6. 神经网络正向传播与反向传播
  7. User-Agent分析及其价值简析
  8. 几月份跳槽或者换工作比较好?
  9. 项目小记----关于小程序图片下载配置域名的坑getImageInfo的有关域名配置
  10. GitHub 智能编程助手 GPT-4 Copilot X 震撼来袭!动动嘴,AI 就能帮你生成代码