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基本摆脱了另外两种方式 成为了 最受欢 ...
随机推荐
- Redis主从复制配置+哨兵模式
架构设计: master:s0 slave:s1.s2 主机映射信息如下: 192.168.32.100 s0 192.168.32.101 s1 192.168.32.102 s2 1.安装Redi ...
- 部署dashboard
1.获取k8s版本: 2.访问dashboard的github:https://github.com/kubernetes/dashboard/releases,然后找到对应的版本 3.然后将yaml ...
- MySQL(MariaDB)默认密码和修改方法
由于笔者只测试过Ubuntu 16.04.4.Ubuntu 19.04和Debian 9,此方法不确定在其他版本下适用. 本文章介绍的方法同样适用于这样的错误信息. ➜ ~ mysql -u root ...
- WIF配置说明
<configuration> <configSections> <!--添加 WIF 4.5 sections :如下两条--> <section name ...
- [人物存档]【AI少女】【捏脸数据】金发西洋风格
点击下载(城通网盘):AISChaF_20191103124436239.png
- [Docker]Harbor部署私有镜像仓库
Harbor部署私有镜像仓库 认识: Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器. 部署环境: CentOS7 Python2.7.5 Docker CE ...
- axios的post传参时,将参数转为form表单格式
import axios from 'axios'; import alert from './alert.js'; import Qs from 'qs' //引入qs 时axios的自带模块 le ...
- vim(vi)下的三种模式及其相关命令
vim(vi)下的三种模式1.命令行模式 2.末行模式 3.插入模式 三种模式的联系及其相互转换 在我们输入vi命令进入编写程序的页面后,我们看到的是命令行模式,在我们输入“a”.“i”.“o”.“O ...
- IDEA远程执行详解
新建一个springboot项目 新建一个java class: @RestController public class TestController { @RequestMapping(" ...
- PHP反序列化总结
之前遇到过很多次php反序列化相关的内容,总结一下. (反)序列化给我们传递对象提供了一种简单的方法.serialize()将一个对象转换成一个字符串,unserialize()将字符串还原为一个对象 ...