蒟蒻不会二维偏序

二维偏序

二维偏序的定义

 定义:形如xi<xjx_i<x_jxi​<xj​且yi<yjy_i<y_jyi​<yj​之类的约束条件,我们可以称为二维偏序。逆序对最长上升子序列就是一个非常经典的二维偏序。

相关做法的思考

 暴力?吃桃吧你。
 如果按照暴力想法,我们O(n2)O(n^2)O(n2)的时间枚举i,ji,ji,j这样太慢了。
 处理第iii位时,我们已经处理过[0,i−1][0,i−1][0,i−1]的数量,那么我们可不可以用一个数据结构记录一下之前的情况呢?

 这就引出了二维偏序。

 我们把第一维从小到大排序,然后遍历,将第二维插入树状数组中,每次查询,即可解决问题。

 其中,因为只拥有这些约束条件,我们需要离散化,减小空间

例题

 就以逆序对作为例子:

 先将这个序列离散化,找出这个数的大小排名,反向进行遍历即可。注意查询是查询前k-1区间内的和,即求出贡献。

#include<bits/stdc++.h>
#define MAXN 500050
#define ll long long
#define in read()
using namespace std;
int n,a[MAXN],b[MAXN],t[4*MAXN],len;inline int read(){int x=0,f=1;char c=getchar();while(c<'0' or c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0' and c<='9'){x=(x<<3)+(x<<1)+c-'0';c=getchar();}return x*f;
}
int lowbit(int x){return x&(-x);
}
void update(int x,int y){while(x<=n){t[x]+=y;x+=lowbit(x);}
}
ll query(int x){ll sum=0;while(x){sum+=t[x];x-=lowbit(x);}return sum;
}
void decrete(){sort(b+1,b+n+1);len=unique(b+1,b+n+1)-b-1;
//  for(int i=1;i<=n;i++)
//      b[i]=lower_bound(b+1,b+len+1,a[i])-b;//大意了
}int finds(int x){return lower_bound(b+1,b+len+1,x)-b;}int main(){n=in;for(int i=1;i<=n;i++)a[i]=b[i]=in;decrete();ll sum=0;for(int i=n;i>=1;i--){int k=finds(a[i]);update(k,1);sum+=query(k-1);}cout<<sum<<'\n';return 0;
}

三维偏序

 咕咕咕……(不会CDQ的我就是屑)

模型——二维偏序与三维偏序相关推荐

  1. 计算机动画可分为二维和三维动画,二维动画与三维动画设计的区分

    二维动画与三维动画不仅仅只是名字不同,在制作过程中有很多的不同,我们一般只是充当欣赏动画的人,但我们必须了解相关的一些常识.三维动画现今已经进入影音行业,而且已经成为了主打军,一般我们看到的动画片都是 ...

  2. 二维张量 乘以 三维张量_通量vs张量流误解

    二维张量 乘以 三维张量 TensorFlow is the 800-pound Gorilla of Machine Learning that almost everybody in the fi ...

  3. 机动目标跟踪——匀加速运动CA模型(二维)

    机动目标跟踪--匀加速运动CA模型(二维) 原创不易,路过的各位大佬请点个赞 WX: ZB823618313 机动目标跟踪--目标模型概述 机动目标跟踪--匀加速运动CA模型(二维) 1. 对机动目标 ...

  4. 正确区分二维动画和三维动画的区别!

    目前市场上,对二维动画和三维动画的需求越来越多,那么这两种动画在表现形式有什么不同,我们又该如何区分呢?下面就来了解一下吧. 首先,我们先了解一下二维动画 二维动画是根据某个场景的人和物的画面绘制,然 ...

  5. 20万套机械、模具、数控、工艺夹具、减速器、机器人、液压系统、车辆工程、PLC 、单片机……毕业设计、课程设计、说明书 论文、二维图、三维图、开题报告、任务书、ppt、文献翻译……分享……持续更新!

    部分清单如下: 自动立体车库结构设计(说明书 CAD图纸 开题报告 任务书 外文翻译--) 玉米秸秆粉碎机毕业设计 论文 车床主轴箱课程设计 R175柴油机机体自动加工线上多功能液压机械手设计(说明书 ...

  6. 计算机动画可分为二维和三维动画,二维动画和三维动画区别在哪

    原标题:二维动画和三维动画区别在哪 对于二维动画的印象,许多人可能是儿时记忆中的<葫芦娃>,对于三维动画,也许有人能想到<秦时明月>,可是除了直观上的区别,二维动画和三维动画具 ...

  7. 【Python】函数图像绘制:二维图像、三维图像、散点图、心形图

    [Python]函数图像绘制:二维图像.三维图像.散点图.心形图 所有需要用的包 二维图像 三维图像 散点图绘制 心形图绘制 所有需要用的包 from mpl_toolkits.mplot3d imp ...

  8. R使用tsne进行高维数据可视化实战:二维可视化、三维可视化

    R使用tsne进行高维数据可视化实战:二维可视化.三维可视化 t-SNE是一种非常强大的技术,可以用于多维数据中的可视化分析(寻找模式).它对复杂多维数据的可视化能力是显而易见的,它以无监督的方式对数 ...

  9. Python使用tsne进行高维数据可视化实战:二维可视化、三维可视化

    Python使用tsne进行高维数据可视化实战:二维可视化.三维可视化 # 绘制二维可视化图像并添加标签字符函数 def plot_embedding(data, label, title):x_mi ...

  10. python二维图颜色函数_Python绘图之二维图与三维图详解

    各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import ...

最新文章

  1. CUDA编程遇到的问题
  2. sql server 内存初探
  3. MAC OS中的dylib 的@rpath和@loader_path小问题
  4. 【杂项】原来有两种单引号(单引号和反引号)
  5. Python学习笔记之Windows下通过pip安装PyMySQL
  6. 【HDU5156】Harry and Christmas tree,两种离线的做法
  7. 计算机系十周年聚会邀请函,毕业十周年同学聚会邀请函
  8. Tornado框架的初步使用
  9. mysql.data已拥有为,MYSQL LOAD DATA INFILE忽略重复行(自动增量作为主键)
  10. 自由软件江湖里的码头和规矩
  11. CTF —— 网络安全大赛
  12. 很好看的source insight配色方案
  13. 第一届腾讯社招广告大赛总结
  14. 怎样用计算机将二进制转换成十进制,二进制如何转换为十进制?
  15. NC65与蓝凌OA审批集成
  16. 问题 F: 解救小哈
  17. Julia发布全功能调试器:4大新功能问世
  18. 年前找工作好,还是年后找工作好?求职需警惕,小心陷入羊群效应
  19. ExoPlayer修改播放器UI
  20. 北京世纪安图在汉参加地理国情监测技术与应用研讨会

热门文章

  1. 配对堆(Pairing Heap)
  2. 2023年ASO的深度指南
  3. 汇编语言程序设计---1~4章习题答案(王爽第二版)
  4. (附源码)基于SSM框架的救援物资的管理与分配系统的设计与实现 毕业设计291141
  5. onClick和onDblClick并存的两种解决方法
  6. antd组件绑定html原生事件(例如给Button绑定ondblclick )
  7. Verilog语法_3(同步有限状态机)
  8. 爬虫批量下载酷我音乐(用酷我音乐客户端)
  9. UI设计中智能电视设计指南
  10. Android 2.3新特性及感应器列表