题目大意:求二维最长上升子序列的长度. 题解: 可以看出,这个问题等价于三维偏序问题. 不过在进行分治的时候要注意,由于 dp 转移是有顺序的,因此只能先处理左半部分,再处理左半部分对右边的贡献,最后处理右半部分. 代码如下 #include <bits/stdc++.h> using namespace std; const int maxn=1e5+10; int n,ans,d[maxn],tot,dp[maxn]; struct node{int x,y,id;}p[maxn],tmp…