bzoj2850巧克力王国
巧克力王国
Time Limit: 60 Sec Memory Limit: 512 MB
Submit: 861 Solved: 325
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2 5
3 1 4
2 2 1
2 1 6
1 3 5
1 3 7
Sample Output
0
4
HINT
1 <= n, m <= 50000,1 <= 10^9,-10^9 <= a, b, x, y <= 10^9。
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<cstdio> #define ll long long
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch>''||ch<''){if (ch=='-') f=-;ch=getchar();}
while(ch<=''&&ch>=''){x=(x<<)+(x<<)+ch-'';ch=getchar();}
return x*f;
}
ll A,B,C,ans;
int F,n,m,rt;
struct Node
{
int d[],mx[],mn[],v,l,r;
ll sum;
int& operator[](int x)
{
return d[x];
}
friend bool operator<(Node x,Node y)
{
return x[F]<y[F];
}
}p[];
bool check(int x,int y)
{
return A*x+B*y<C;
}
int cal(Node x)
{
int tmp=;
tmp+=check(x.mn[],x.mn[]);
tmp+=check(x.mx[],x.mn[]);
tmp+=check(x.mn[],x.mx[]);
tmp+=check(x.mx[],x.mx[]);
return tmp;
}
struct kd
{
Node t[];
void update(int p)
{
int l=t[p].l,r=t[p].r;
for (int i=;i<;i++)
{
t[p].mn[i]=t[p].mx[i]=t[p][i];
if (l) t[p].mn[i]=min(t[p].mn[i],t[l].mn[i]);
if (r) t[p].mn[i]=min(t[p].mn[i],t[r].mn[i]);
if (l) t[p].mx[i]=max(t[p].mx[i],t[l].mx[i]);
if (r) t[p].mx[i]=max(t[p].mx[i],t[r].mx[i]);
}
t[p].sum=t[p].v+t[l].sum+t[r].sum;
}
int build(int l,int r,int now)
{
F=now;
int mid=(l+r)>>;
nth_element(p+l,p+mid,p+r+);
t[mid]=p[mid];
if (l<mid) t[mid].l=build(l,mid-,now^);
if (r>mid) t[mid].r=build(mid+,r,now^);
update(mid);
return mid;
}
void query(int p)
{
int l=t[p].l,r=t[p].r;
if (check(t[p][],t[p][]))ans+=t[p].v;
int tl=,tr=;
if (l) tl=cal(t[l]);
if (r) tr=cal(t[r]);
if (tl==) ans+=t[l].sum;
else if (tl) query(l);
if (tr==) ans+=t[r].sum;
else if (tr) query(r);
}
}kd;
int main()
{
n=read(),m=read();
for (int i=;i<=n;i++)
p[i][]=read(),p[i][]=read(),p[i].v=read();
rt=kd.build(,n,);
while(m--)
{
A=read(),B=read(),C=read();
ans=;
kd.query(rt);
printf("%lld\n",ans);
}
}
bzoj2850巧克力王国的更多相关文章
- [bzoj2850]巧克力王国_KD-Tree
巧克力王国 bzoj-2850 题目大意:给出n块巧克力,每块巧克力都有自己的两个参数x和y和本身的价值val,询问:m个人,每个人有两个系数和一个限度a,b,和c.求所有ax+by<=c的巧克 ...
- Bzoj2850 巧克力王国
Time Limit: 60 Sec Memory Limit: 512 MBSubmit: 505 Solved: 204 Description 巧克力王国里的巧克力都是由牛奶和可可做成的.但 ...
- 【kd-tree】bzoj2850 巧克力王国
分四种情况讨论:a,b>=0 a,b<0 a>=0,b<0 a<0,b>=0 然后每次检验是否进入一个矩形框 或者 是否直接利用这个矩形框的答案 仅仅利用两个对角的 ...
- 【BZOJ2850】巧克力王国 KDtree
[BZOJ2850]巧克力王国 Description 巧克力王国里的巧克力都是由牛奶和可可做成的.但是并不是每一块巧克力都受王国人民的欢迎,因为大家都不喜 欢过于甜的巧克力.对于每一块巧克力,我们设 ...
- 【BZOJ2850】巧克力王国 [KD-tree]
巧克力王国 Time Limit: 60 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description 巧克力王国里的巧克力都是由牛奶和 ...
- BZOJ2820 - 巧克力王国
原题链接 Description 给出个二维平面上的点,第个点为,权值为.接下来次询问,给出,求所有满足的点的权值和. Solution 对于这个点建一棵k-d树,子树维护一个子树和. 如果子树所代表 ...
- 洛谷 P4475 巧克力王国 解题报告
P4475 巧克力王国 题目描述 巧克力王国里的巧克力都是由牛奶和可可做成的.但是并不是每一块巧克力都受王国人民的欢迎,因为大家都不喜欢过于甜的巧克力. 对于每一块巧克力,我们设 \(x\) 和 \( ...
- 【BZOJ】【2850】【Violet 0】巧克力王国
KD-Tree 问平面内在某条直线下方的点的权值和 我一开始yy的是:直接判这个矩形最高的两个点(y坐标的最大值)是否在这条直线下方就可以了~即判$A*x+B*y<C$... 然而这并不对啊…… ...
- bzoj 2850 巧克力王国
bzoj 2850 巧克力王国 钱限题.题面可以看这里. 显然 \(x\) \(y\) 可以看成坐标平面上的两维,蛋糕可以在坐标平面上表示为 \((x,y)\) ,权值为 \(h\) .用 \(kd- ...
随机推荐
- C# 一维数组 二位数组 多维数组
什么是数组? 数组是一组变量,就是把一些变量串在一起,放在一块. 数组的作用? 假设有一堆变量,每个变量都有一些程序,那么这堆程序放在一起 程序就会混乱,处理起来有些麻烦,那么数组就是把这些变量放在 ...
- java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName'
java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName' ...
- postgresql+pgadmin3安装
检查5432端口是否被占用,如果占用则释放 1.运行postgresql-9.3.1.xxx.run 安装好postgresql和pgadmin III 2.创建数据库目录和日志目录 [roo ...
- ios UITableViewCell重用问题
在写sina 微博界面的过程中使用到了cell,那么就是在cell上添加一些控件,但是由于每条微博的内容都是不同的,所以在显示的过程中,出现了内容重叠的问题,其实就是UITableViewCell重用 ...
- linux 用dd命令读写引导区文件
分类: LINUX 备份MBR,linux下使用如下命令: # dd if=/dev/hda of=/root/linux.bin bs=512 count=1 这里注意使用if=/dev/hda备份 ...
- [LUOGU] P2330 [SCOI2005]繁忙的都市
题目描述 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条 ...
- percona-server-5.7二进制安装(tokudb)
1.下载二进制安装包(适用于红帽.centos) https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-5.7. ...
- Centos7.2 上部署 FastDFS_V5.05
1.安装gcc (编译时需要) [root@localhost~]# yum -y install gcc gcc-c++ 2.安装libevent ,FastDFS依赖libevent库; [roo ...
- Spring中使用注解 @Scheduled 执行定时任务
来自:http://blog.51cto.com/dwf07223/1557145 注解@Scheduled 可以作为一个触发源添加到一个方法中,例如,以下的方法将以一个固定延迟时间5秒钟调用一次执行 ...
- Spring容器的理解
控制反转(IOC,Inversion Of Contorl)和依赖注入(DI,Dependency Injection) IOC是一个宽泛的概念:对某事物的控制权由A转移到B. DI是实现IOC的一种 ...