time limit: 60 sec memory limit: 512 mb
submit: 505 solved: 204
歡過於甜的巧克力。對於每一塊巧克力,我們設x和y為其牛奶和可可的含量。由於每個人對於甜的程度都有自己的
評判標準,所以每個人都有兩個引數a和b,分別為他自己為牛奶和可可定義的權重,因此牛奶和可可含量分別為x
和y的巧克力對於他的甜味程度即為ax + by。而每個人又有乙個甜味限度c,所有甜味程度大於等於c的巧克力他都
無法接受。每塊巧克力都有乙個美味值h。現在我們想知道對於每個人,他所能接受的巧克力的美味值之和為多少
第一行兩個正整數n和m,分別表示巧克力個數和詢問個數。接下來n行,每行三個整數x,y,h,含義如題目所示。再
接下來m行,每行三個整數a,b,c,含義如題目所示。
輸出m行,其中第i行表示第i個人所能接受的巧克力的美味值之和。
3 31 2 5
3 1 4
2 2 1
2 1 6
1 3 5
1 3 750
41 <= n, m <= 50000,1 <= 10^9,-10^9 <= a, b, x, y <= 10^9。
violet 0
k-d tree
以x和y為座標,通過ax+by估價來優化查詢
1 #include2 #include3 #include4 #include5 #include6using
namespace
std;
7const
int mxn=100010;8
intread()
11while(ch>='
0' && ch<='9')
12return x*f;13}
14struct
nodet[mxn];
20int nowd=0;21
int cmp(const node a,const
node b)
24int root,nct=0;25
intn,m;
26long
long a,b,c,ans=0
; 27
void pushup(int rt,int
x)34
int build(int l,int r,int
d)41
if(r!=mid)
42 t[mid].sum=t[t[mid].l].sum+t[t[mid].r].sum+t[mid].v;
43return
mid;44}
45 inline bool pd(long
long x,long
long y)
46int cnt(int
rt)54
void query(int
rt)//
還要算r所以不能return
60else
if(l)query(t[rt].l);
61if(r==4)
62else
if(r)query(t[rt].r);
63return;64
}65intmain()
71 root=build(1,n,0
);72
for(i=1;i<=m;i++)
78return0;
79 }
bzoj2850 巧克力王國
description 巧克力王國裡的巧克力都是由牛奶和可可做成的。但是並不是每一塊巧克力都受王國人民的歡迎,因為大家都不喜 歡過於甜的巧克力。對於每一塊巧克力,我們設x和y為其牛奶和可可的含量。由於每個人對於甜的程度都有自己的 評判標準,所以每個人都有兩個引數a和b,分別為他自己為牛奶和可可定義的...
bzoj2850 巧克力王國
以x和 y作為座標建立 kdtree 然後維護某一棵子樹內的美味值之和,如果同一顆子樹的四個角的甜味都小於 h,那麼就可以直接累加進去。雖然這樣的最壞時間複雜度仍然是 o n 但可以卡過去。1 include2 using namespace std 3 define n 50005 4 defin...
巧克力王國 BZOJ 2850
巧克力王國 問題描述 巧克力王國裡的巧克力都是由牛奶和可可做成的。但是並不是每一塊巧克力都受王國人民的歡迎,因為大家都不喜歡過於甜的巧克力。對於每一塊巧克力,我們設x和y為其牛奶和可可的含量。由於每個人對於甜的程度都有自己的評判標準,所以每個人都有兩個引數a和b,分別為他自己為牛奶和可可定義的權重,...