二維偏序 poj 2352 luogu 3431

2021-10-09 01:27:04 字數 2474 閱讀 2777

這兩題都是二維偏序,二維偏序的題怎麼去做呢?

回憶一下二維偏序,可以化為這樣乙個問題:設乙個點為(x,y),問(1 ~ x-1,1 ~ y-1)(即乙個點的左下方)有多少個點?

那我們一般怎麼做呢,就是固定一維(x或y)然後排序,在另一維統計答案。這麼做的正確性看看題,手動模擬一下就知道了(嚴格證明我不知道)。

poj 2352:

很明顯題目已經固定了y這一維,然後我們統計x就可以了。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define io ios::sync_with_stdio(false)

#define int long long

using

namespace std;

string s;

int a[

50005

],n,c[

50005

],t,ax[

50005

],ay[

50005

],ans[

50005];

void

add(

int x,

int y)

intask

(int x)

signed

main()

for(

int i=

0;i<=n-

1;i++

)}

luogu 3431

暴力dp很容易,然後我們發現其實就是二維偏序,就用二維偏序去優化dp行了。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define io ios::sync_with_stdio(false)

//#define int long long

using

namespace std;

struct node

t[100005*4

];struct dian

a[100005];

int n,m,k,ay[

100005

],ans=-1

;bool

cmp(dian x,dian y)

else

}void

build

(int rt,

int l,

int r)

int mid=l+r>>1;

build

(rt*

2,l,mid)

;build

(rt*2+

1,mid+

1,r)

; t[rt]

.sum=

max(t[rt*2]

.sum,t[rt*2+

1].sum);}

void

upd(

int rt,

int x,

int v)

int mid=t[rt]

.l+t[rt]

.r>>1;

if(x<=mid)

else

t[rt]

.sum=

max(t[rt*2]

.sum,t[rt*2+

1].sum);}

intask

(int rt,

int l,

int r)

int mid=t[rt]

.l+t[rt]

.r>>1;

if(l>mid)

else

if(r<=mid)

else

}int

main()

sort

(a+1

,a+k+

1,cmp)

;build(1

,1,k);

for(

int i=

1;i<=k;i++

)sort

(ay+

1,ay+k+1)

;int len=

unique

(ay+

1,ay+k+1)

-(ay+1)

;for

(int i=

1;i<=k;i++

) cout<}

二維偏序問題

想學cdq分治,然而cdq的經典題目是三維偏序問題,是建立在二維偏序問題的基礎上的。我這只蒟蒻連個二維偏序問題都沒做過。在網上找了一大圈,才勉強找到乙個二維偏序的題目。bzoj的許可權啊。是時候買個許可權號了。題目鏈結 這個牛客網也不知道是什麼鬼。給你n個物品,每個物品有兩個參量,分別為 s,w 讓...

Laptop 二維偏序

fst是一名可憐的小朋友,他很強,但是經常fst,所以rating一直低迷。但是重點在於,他非常適合acm!並在最近的區域賽中獲得了不錯的成績。拿到獎金後fst決定買一台新筆記本,但是fst發現,在 能承受的範圍內,筆記本的記憶體和速度是不可兼得的。可是,有一些筆記本是被另外一些 完虐 的,也就是記...

二維偏序 tree

最近接觸到一些偏序的東西。傳統線段樹非葉子節點的劃分點mid l r 2,但小r線段樹mid是自己定的。但滿足l mid 這道題n和詢問個數都到了1e5,所以考慮nlogn的做法。我們發現區間定位個數 答案 和完全被該區間包含的節點個數所相關。具體性質如下 區間定位個數 答案 2 區間長度 完全被該...