題意:n朵花,每朵花有3個屬性a,b,c,一朵花比另一朵花美麗當且僅當3個屬性都大於等於另一朵,一朵花比x朵花美麗則稱其等級為x,求出每個等級的花的數量。
思路:三維偏序問題,cdq分治模板
這個講解不錯。
#include
using
namespace std;
#define lowbit(x) (x&(-x))
#define maxn 200000+100
int n,k,c[maxn]
,cnt,ans[maxn]
;struct element
}e[maxn]
,t[maxn]
;int
sum(
int x)
return ret;
}void
add(
int x,
int d)
}void
cdq(
int l,
int r)
for(x=l;x<=mid;x++
)add
(e[x]
.c,-e[x]
.w);
for(x=l;x<=r;x++
)e[x]
=t[x];}
intmain()
cdq(
1,cnt)
;for
(int i=
1;i<=cnt;i++
)ans[e[i]
.f+e[i]
.w-1]+
=e[i]
.w;for
(int i=
0;i)printf
("%d\n"
,ans[i]);
return0;
}
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 樹狀陣列 秒掉,...