bzoj3262 陌上花開

2021-09-28 15:23:14 字數 1183 閱讀 9497

傳送門

首先按照a

aa排序。在分治的時候就沒有第一維的影響了。

然後分治的時候兩個區間分別按照第二維排序。記左右兩個指標。

右邊指標乙個乙個向右跳,左邊指標移到第二維小等於右邊指標的最大位置。並且在左指標跳的時候把對應的c

cc記入權值樹狀陣列裡面。左指標跳完之後用右邊的c

cc查一查字首和即可。

分治完之後要把影響消掉。

樹狀陣列要開權值大小。

並且要去重。因為相同的之間是相互大於。

#include

#define re register

#define cs const

#define lowbit(x) (x&(-x))

#define mid (l+r>>1)

cs int n=

1e5+

10,k=

2e5+10;

int n,k,tot,tr[k]

,ans[n]

;namespace io

template

<

typename t>

inline t get()

inline

intgi()

}using io::gi;

struct nodea[n]

;inline

bool

comp_all

(cs node &a,cs node &b)

inline

bool

comp_b

(cs node &a,cs node &b)

inline

bool

operator

!=(cs node &a,cs node &b)

inline

void

add(

int x,

int v)

inline

intquery

(int x,

int ret=0)

void

solve

(int l,

int r)

while

(--pl>=l)

add(a[pl]

.c,-a[pl]

.cnt);}

intmain()

BZOJ3262 陌上花開

description 有n朵花,每朵花有三個屬性 花形 s 顏色 c 氣味 m 又三個整數表示。現要對每朵花評級,一朵花的級別是它擁有的美麗能超過的花的數量。定義一朵花a比另一朵花b要美麗,當且僅當sa sb,ca cb,ma mb。顯然,兩朵花可能有同樣的屬性。需要統計出評出每個等級的花的數量。...

BZOJ3262 陌上花開

description 有n朵花,每朵花有三個屬性 花形 s 顏色 c 氣味 m 又三個整數表示。現要對每朵花評級,一朵花的級別是它擁有的美麗能超過的花的數量。定義一朵花a比另一朵花b要美麗,當且僅當sa sb,ca cb,ma mb。顯然,兩朵花可能有同樣的屬性。需要統計出評出每個等級的花的數量。...

BZOJ 3262 陌上花開

話說這是一道許可權題,如果我複製過來,bzoj不會打死我吧?hhh 大意就是給三維空間中的很多點,乙個點p x,y,z 的級別定義為x0 x y0 y z0 z的任意點p0 x0,y0,z0 的數量,求每種級別的點各有多少種。看過一道二維的這樣的題目,當時想的是直接排序然後用bit 樹狀陣列 秒掉,...