bzoj2850 巧克力王國

2021-08-01 10:32:10 字數 1454 閱讀 4383

description

巧克力王國裡的巧克力都是由牛奶和可可做成的。但是並不是每一塊巧克力都受王國人民的歡迎,因為大家都不喜

歡過於甜的巧克力。對於每一塊巧克力,我們設x和y為其牛奶和可可的含量。由於每個人對於甜的程度都有自己的

評判標準,所以每個人都有兩個引數a和b,分別為他自己為牛奶和可可定義的權重,因此牛奶和可可含量分別為x

和y的巧克力對於他的甜味程度即為ax + by。而每個人又有乙個甜味限度c,所有甜味程度大於等於c的巧克力他都

無法接受。每塊巧克力都有乙個美味值h。現在我們想知道對於每個人,他所能接受的巧克力的美味值之和為多少

input

第一行兩個正整數n和m,分別表示巧克力個數和詢問個數。接下來n行,每行三個整數x,y,h,含義如題目所示。再

接下來m行,每行三個整數a,b,c,含義如題目所示。

output

輸出m行,其中第i行表示第i個人所能接受的巧克力的美味值之和。

sample input

3 31 2 5

3 1 4

2 2 1

2 1 6

1 3 5

1 3 7

sample output

4 hint

1 <= n, m <= 50000,1 <= 10^9,-10^9 <= a, b, x, y <= 10^9。

source

violet 0

題解 kd-tree 模板題。

**

#include

#include

#include

#include

#include

#define inf 100000000

#define ll long long

#define mo 1000000007

#define n 50005

using

namespace

std;

struct p

p[n],t[n];

int n,m,d,rt;

ll ans,a,b,c;

inline

int read()

while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();

return x*f;

}bool

operator

<(p a,p b)

t[k].sum=t[l].sum+t[r].sum+t[k].v;

}int build(int l,int r,int now)

bool check(int x,int y)

void query(int k)

int main()

rt=build(1,n,0);

while (m--)

return

0;}

Bzoj2850 巧克力王國

time limit 60 sec memory limit 512 mb submit 505 solved 204 歡過於甜的巧克力。對於每一塊巧克力,我們設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,分別為他自己為牛奶和可可定義的權重,...