UOJ#495晒被子
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<ctime>
#include<deque>
using namespace std;
const long long N=;
long long n,m,x1,y11,x2,y2,t;
struct tree{
long long l,r,a,b,c;
}tree[*N];
void build(long long o,long long l,long long r){
tree[o].a=tree[o].b=tree[o].c=;
tree[o].l=l;
tree[o].r=r;
if(l==r){
return;
}
long long mid=(l+r)/;
build(o*,l,mid);
build(o*+,mid+,r);
}
void pushdown(long long o){
tree[o*].a+=tree[o].a;
tree[o*].b+=tree[o].b;
tree[o*].c+=tree[o].c;
tree[o*+].a+=tree[o].a;
tree[o*+].b+=tree[o].b;
tree[o*+].c+=tree[o].c;
tree[o].a=tree[o].b=tree[o].c=;
}
long long query(long long o,long long k){
long long l=tree[o].l,r=tree[o].r;
if(l==r){
return k*k*tree[o].a+k*tree[o].b+tree[o].c;
}
long long mid=(l+r)/;
pushdown(o);
if(k<=mid){
return query(o*,k);
}
else{
return query(o*+,k);
}
}
void update(long long o,long long ql,long long qr,long long a,long long b,long long c){
long long l=tree[o].l,r=tree[o].r;
if(ql<=l&&r<=qr){
tree[o].a+=a;
tree[o].b+=b;
tree[o].c+=c;
return;
}
long long mid=(l+r)/;
if(ql<=mid){
update(o*,ql,qr,a,b,c);
}
if(qr>mid){
update(o*+,ql,qr,a,b,c);
}
}
int main(){
scanf("%lld%lld",&n,&m);
build(,,);
for(long long i=;i<=n;i++){
scanf("%lld%lld%lld%lld",&x1,&y11,&x2,&y2);
update(,max(x2,y2)+,,,,(x2-x1)*(y2-y11));
if(x2<y2){
update(,max(x2,y11)+,y2,,x2-x1,y11*(x1-x2));
}
else{
update(,max(x1,y2)+,x2,,y2-y11,x1*(y11-y2));
}
if(max(x1,y11)<min(x2,y2)){
update(,max(x1,y11),min(x2,y2),,-(x1+y11),x1*y11);
}
}
for(long long i=;i<=m;i++){
scanf("%lld",&t);
printf("%lld\n",query(,t));
}
return ;
}
UOJ#495晒被子的更多相关文章
- hdu4533 威威猫系列故事——晒被子
Problem Description 因为马拉松初赛中吃鸡腿的题目让不少人抱憾而归,威威猫一直觉得愧对大家,这几天他悄悄搬到直角坐标系里去住了. 生活还要继续,太阳也照常升起,今天,威威猫在第一象限 ...
- HDU 4533 威威猫系列故事——晒被子
题目链接 扫描线可做,然后当时比赛后问虎哥,他说可以标记,然后拖了很久,今天从早上折腾到晚上,终于把两种情况写出来,分析太弱.改天扫描线,再来一次. 被子如果被y = x 穿过,可以分成两部分,上和下 ...
- HDU-4533 威威猫系列故事——晒被子(区间更新)
题目大意:在平面直角坐标系的第一象限中,给出n个矩形(可能重叠).有m次询问,每次询问点(t,t)的左下方的正方形区域中矩形的总面积(重叠部分重叠几次就得统计几次). 题目分析:线段树的叶子节点x维护 ...
- 线段树总结 (转载 里面有扫描线类 还有NotOnlySuccess线段树大神的地址)
转载自:http://blog.csdn.net/shiqi_614/article/details/8228102 之前做了些线段树相关的题目,开学一段时间后,想着把它整理下,完成了大牛NotOnl ...
- 互联网时代的社会语言学:基于SNS的文本数据挖掘
今年上半年,我在人人网实习了一段时间,期间得到了很多宝贵的数据,并做了一些还算有意义的事情,在这里和大家一块儿分享.感谢人人网提供的数据 与工作环境,感谢赵继承博士.詹卫东老师的支持和建议.在这项工作 ...
- c#委托概念
委托的官方概念是:安全封装方法的类型. 百度百科的概念是,委托是个类,定义了方法的类型,使得方法可以作为另外一个方法的参数进行传递.使得程序具有很好的扩展性. 揉碎了讲一下这个概念: 张三要做三件事: ...
- hdu 4533 线段树(问题转化+)
威威猫系列故事——晒被子 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Tot ...
- 基于大规模语料的新词发现算法【转自matix67】
最近需要对商品中的特有的词识别,因此需新词发现算法,matrix的这篇算法很好. 对中文资料进行自然语言处理时,我们会遇到很多其他语言不会有的困难,例如分词——汉语的词与词之间没有空格,那计算机怎么才 ...
- EF CodeFirst 初识
随着EntityFramework的发展,原先的三种方式,{Code First ,Model First,Database First } CodeFirst基本摆脱了另外两种方式 成为了 最受欢 ...
随机推荐
- IntelliJ IDEA 项目同步至GitHub
第一步:下载对应电脑版本的git客户端,安装好,傻瓜式下一步就行. 第二步:在idea里设置github地址和git地址 可以点击Test测试一下是否配置正确,如果提示成功,就是配置OK.如果失败,检 ...
- 部署dashboard
1.获取k8s版本: 2.访问dashboard的github:https://github.com/kubernetes/dashboard/releases,然后找到对应的版本 3.然后将yaml ...
- Object-C(自学1)
----- 需求索要 自学了下 OBJECt-C ----- 就基础部分一些 和操作 command + R 运行command +B 只编译.m文件 NSlog() = printfNSLog 是 ...
- hive三种调用方式
一.hive -e ‘sql语句’ (shell命令) 适合比较短的sql语句调用,优点是可以直接在shell中调用静音模式 -S 在执行HiveQL过程中,不在显示器输出MR的执行过程hive -S ...
- react 项目 mock数据
前言 我们都知道在实际的开发阶段,后端接口开发是和前端开发同步进行,甚至迟于前端的进度,这就直就导致前端需要等待后端接口的时间. 这种情况就严重导致前端开发缓慢,那这时候前端的开发人员只能写静态模拟数 ...
- SQL 修复表
alter database dcdata set single_user with rollback immediate设置为单用户模式然后执行修复.DBCC CHECKTABLE(ZLBZSGPH ...
- vueCli和脚手架
vue CLI相当于一个基于vue开发的框架:可以用来快速开发vue项目: 1.安装 由于需要用到npm命令,所以要先安装node.js: node.js下载地址:https://node ...
- 如何制作纯净的U盘启动盘
1.去下载**WinPE工具箱**U盘启动盘制作工具 下载地址:http://www.wepe.com.cn/download.html
- python socket.io 坑。
python下star最高的是https://github.com/miguelgrinberg/python-socketio 是flask作者写的.client server都有了,而且还提供了a ...
- poj 2718 Smallest Difference(暴力搜索+STL+DFS)
Smallest Difference Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6493 Accepted: 17 ...