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基本摆脱了另外两种方式 成为了 最受欢 ...
随机推荐
- 小程序swiper组件的bindchange方法重复执行问题
这是官方文档的说法给出了swiper组件一直来回滑动的bug原因 以下是修正方法 <swiper autoplay="{{autoplay}}" interval=" ...
- puppet完全攻略(一)puppet应用原理及安装部署
puppet完全攻略(一)puppet应用原理及安装部署 2012-06-06 18:27:56 标签:puppet puppet应用原理 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出 ...
- django之ORM的查询优化、Ajax 06
目录 ORM查询优化 only与defer select_related与prefetch_related查询优化 choices参数 MTV与MVC模型 Ajax简介 AJAX常见应用情景 AJAX ...
- [Angular 8] Take away: Web Components with Angular Elements: Beyond the Basics
This post is based on the NG-CONF talk, check the talk by yourself. 1. Dynamiclly add Angular Elemen ...
- 【C#-导出Excel】DataSet导出Excel
1.添加引用 2.封装方法 using System; using System.Data; using System.IO; using NPOI.HSSF.UserModel; using NPO ...
- mysql优化(上)
磁盘组成 和 磁盘读取过程 尽量减少 i/o 操作. 表结构设计:(1)三范式 : 原子性(不可拆分).唯一性(不能有完全相同的数据).无冗余性(不能有多余的数据),对于冗余性说明一下:拿订单 ...
- [Flask]sqlalchemy使用count()函数遇到的问题
sqlalchemy使用count()函数遇到的问题 在使用flask-sqlalchemy对一个千万级别表进行count操作时,出现了耗时严重.内存飙升的问题. 原代码: # 统计当日登陆次数 co ...
- 《剑指offer》算法题第六天
今日题目: 顺时针打印矩阵 包含min函数的栈 栈的压入.弹出序列 从上到下打印二叉树 二叉树搜索树的后序遍历序列 二叉树中和为某一值的路径 今天的题目都比较简单,下面一一介绍: 1. 顺时针打印矩阵 ...
- Dungeon Master (POJ - 2251)(BFS)
转载请注明出处: 作者:Mercury_Lc 地址:https://blog.csdn.net/Mercury_Lc/article/details/82693907 题目链接 题解:三维的bfs,一 ...
- 设置Chart.js默认显示Point点的值不用鼠标经过才显示
Chart.js默认的显示方式是鼠标经过Point点的时候才会显示这个点的值,代码如下: var testdata: { periodNum: ["2018121","2 ...