HDU 4533
一道好题。想了好久没想出来,只是觉得总要二分独立处理矩形。感觉自己在把问题转化为数学公式以及分解问题的方面的能力很不足。
http://blog.csdn.net/wh2124335/article/details/8739097
解题思路:



看过后敲代码不难。注意以后在涉及计算方面要把问题往数学公式方面靠近。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define LL __int64
using namespace std;
const int N= 20100; struct Point{
int x,y,qc;
Point (){}
Point (int x1,int y1){
x=x1,y=y1;
qc=max(x,y);
}
}a[N*2],b[N*2];
int n; LL aad[N*2],aam[N*2];
LL bad[N*2],bam[N*2]; bool cmp(Point a,Point b){
if(a.qc<b.qc ) return true;
return false;
} int bin(Point *s,int t){
int l=0,r=2*n-1;
int ans=-1;
while(l<=r){
int m=(l+r)>>1;
if(s[m].qc<=t){
ans=m;
l=m+1;
}
else r=m-1;
}
return ans;
} int main(){
int T,x1,y1,x2,y2,cnta,cntb,m,t;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
cnta=cntb=0;
for(int i=0;i<n;i++){
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
a[cnta++]=Point(x1,y1);
a[cnta++]=Point(x2,y2);
b[cntb++]=Point(x1,y2);
b[cntb++]=Point(x2,y1);
}
sort(a,a+2*n,cmp);
sort(b,b+2*n,cmp);
aad[0]=a[0].x+a[0].y; aam[0]=a[0].x*a[0].y;
bad[0]=b[0].x+b[0].y; bam[0]=b[0].x*b[0].y;
for(int i=1;i<n*2;i++){
aad[i]=aad[i-1]+a[i].x+a[i].y;
aam[i]=aam[i-1]+(LL)a[i].x*(LL)a[i].y;
bad[i]=bad[i-1]+b[i].x+b[i].y;
bam[i]=bam[i-1]+(LL)b[i].x*(LL)b[i].y;
}
scanf("%d",&m);
LL ans;
while(m--){
scanf("%d",&t);
int a1=bin(a,t),b1=bin(b,t);
if(a1==-1)
puts("0");
else if(b1==-1){
ans=(LL)(a1+1)*(LL)t*(LL)t-aad[a1]*(LL)t+aam[a1];
printf("%I64d\n",ans);
}
else{
ans=(LL)(a1+1)*(LL)t*(LL)t-aad[a1]*(LL)t+aam[a1]-((LL)(b1+1)*(LL)t*(LL)t-bad[b1]*(LL)t+bam[b1]);
printf("%I64d\n",ans);
}
}
}
return 0;
}
HDU 4533的更多相关文章
- hdu 4533 线段树(问题转化+)
威威猫系列故事——晒被子 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Tot ...
- HDU 4533 威威猫系列故事——晒被子
题目链接 扫描线可做,然后当时比赛后问虎哥,他说可以标记,然后拖了很久,今天从早上折腾到晚上,终于把两种情况写出来,分析太弱.改天扫描线,再来一次. 被子如果被y = x 穿过,可以分成两部分,上和下 ...
- 线段树总结 (转载 里面有扫描线类 还有NotOnlySuccess线段树大神的地址)
转载自:http://blog.csdn.net/shiqi_614/article/details/8228102 之前做了些线段树相关的题目,开学一段时间后,想着把它整理下,完成了大牛NotOnl ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 4006The kth great number(K大数 +小顶堆)
The kth great number Time Limit:1000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64 ...
- HDU 1796How many integers can you find(容斥原理)
How many integers can you find Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d ...
随机推荐
- find_in_set的用法(某个字段包含某个字符)
有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等 现在有篇文章他既是 头条,又是热点,还是图文, type中以 1,3,4的格式存 ...
- phonegap在eclipse上的安装
1.首先安装好eclipse 2.下载安装好sdk 3.下载安装好adt 4.在这个地方下载好phonegap的包,https://codeload.github.com/phonegap/phone ...
- iOS- Size Class使用教程
1:它引入了一种新的概念,抛弃传统意义上我们适配时所谓的具体宽高尺寸,把屏幕的宽和高分别分成两种情况:Compact-紧凑, Regular-正常(Any-任意,其实就是这2种的组合,所以我没分成3种 ...
- 01--SQLite学习网站参考
1. SQLite基本操作 见我的02—SQLite一步到位 sqlite3编程笔记 . http://blog.csdn.net/wl_haanel/article/details/623141 ...
- oracle 用户的操作
语法: CREATE USER user IDENTIFIED { BY password | EXTERNALLY [ AS 'certificate_DN' ] ...
- 4星|《JAC写给外贸公司老板的企管书》:善总结爱学习、有业绩的老外贸的经验谈
作者从事外贸10余年,作出了业绩,也善总结.爱学习.爱分享.本书是作者在外贸行业的从业经验集.有一些战略方面的,比如开发小语种市场,大部分都是战术方面的操作细节(比如如何做营销),应该是非常适合从业者 ...
- (原创)HyperPacer使用技巧之集合点设置
版权声明:本文为原创文章,转载请先联系并标明出处 性能测试中,我们可以模拟最真实的用户操作来建立性能模型,但是这种模拟是相对的.譬如12306网站春运开始后每一天都是高峰,这种高负载情况会持续一至两个 ...
- 【sqli-labs】 less60 GET -Challenge -Double Query -5 queries allowed -Variation3 (GET型 挑战 双查询 只允许5次查询 变化3)
http://192.168.136.128/sqli-labs-master/Less-60/?id=1")%23 http://192.168.136.128/sqli-labs-mas ...
- (转)Hibernate框架基础——在Hibernate中java对象的状态
http://blog.csdn.net/yerenyuan_pku/article/details/52760627 在Hibernate中java对象的状态 Hibernate把对象分为4种状态: ...
- TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义
http://blog.csdn.net/wudiyi815/article/details/8505726 TCP:SYN ACK FIN RST PSH URG简析 三次握手Three-way ...