2013腾讯编程马拉松——复赛试题(3月29)
来源:互联网 发布:高考顶替知乎 编辑:程序博客网 时间:2024/05/12 01:41
1004威威猫系列故事——晒被子
TimeLimit:1.0Seconds MemoryLimit:65536K
因为马拉松初赛中吃鸡腿的题目让不少人抱憾而归,威威猫一直觉得愧对大家,这几天
他悄悄搬到直角坐标系里去住了。
生活还要继续,太阳也照常升起,今天,威威猫在第一象限晒了N条矩形的被子,
被子的每条边都和坐标轴平行,不同被子的某些部分可能会叠在一起。这时候,在原点
处突然发了场洪水,时间t 的时候,洪水会蔓延到(t,t ),即左下角为(0,0) ,右上角
为(t,t )的矩形内都有水。
悲剧的威威猫想知道,在时间t1,t2,t3 ...tx 的时候,他有多少面积的被子是湿的?
Input
输入数据首先包含一个正整数T,表示有T组测试数据;
每组数据的第一行首先是一个整数N,表示有N条被子;
接下来N行,每行包含四个整数x1,y1,x2,y2,代表一条被子的左下角和右上角的坐标;
然后接下来一行输入一个整数x,表示有x次询问;
再接下来x行,输入x个严格单调递增的整数,每行一个,表示威威猫想知道的时间ti。
[TechnicalSpecification]
T<=5
0<N<=20000
1<=x1<x2<=200000
1<=y1<y2<=200000
1<=x<=20000
1<=ti <=200000(1<=i <=x)
Output
对于每次询问,请计算并输出ti 时有多少面积的被子是湿的,每个输出占一行。
Sampleinput
1
2
1133
2244
5
1
2
3
4
5
Sampleoutput
0
1
5
8
8
#include <stdio.h>
void main(){
int T;
scanf("%d",&T);
while(T--)
{
int N,last,max = 0;
long s[200001]={0};
int x1,y1,x2,y2,x;
scanf("%d",&N);
while(N--)
{
int i,j,k,m;
long h;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
i = x2 - x1;
j = y2 - y1;
k = (x1>y1?x1:y1);
m = (x2>y2?x2:y2);
if(max<m)
{
last = max;
h = s[last];
max = m;
}
for(;k<=last;k++)
{
if(k<x2)
s[k] += (k-x1)*(k-y1);
else
s[k] += i*(k-y1);
}
for(;k<=max;k++)
{
if(k<x2)
{
if(k<y2)
s[k]=s[k]+h+(k-x1)*(k-y1);
else
s[k]=s[k]+h+j*(k-x1);
}
else
{
if(k<y2)
s[k]=s[k]+h+i*(k-y1);
else
s[k]=s[k]+h+i*j;
}
}
}
scanf("%d",&x);
while(x--)
{
int ti;
scanf("%d",&ti);
if(ti>max)
printf("%ld\n",s[max]);
else
printf("%d\n",s[ti]);
}
}
}
- 2013腾讯编程马拉松——复赛试题(3月29)
- 2013腾讯编程马拉松——复赛试题(3月29)题目+第3题源代码(C++版)
- 威威猫系列故事——吃鸡腿(3月25号腾讯编程马拉松大赛 )
- 2013腾讯编程马拉松初赛第〇场(3月20日)(HDU4500 —— HDU4504)
- 2013腾讯编程马拉松初赛第一场(3月21日)小明系列故事——师兄帮帮忙
- 2013腾讯编程马拉松复赛第二场部分题解
- HDU 4530 小Q系列故事——大笨钟 2013腾讯编程马拉松复赛第一场第一题
- HDU 4539 2013腾讯编程马拉松复赛第二场 郑厂长系列故事——排兵布阵
- 2013腾讯马拉松编程初赛3月20日1001
- 2013腾讯马拉松编程初赛3月21日1001
- 2013腾讯马拉松编程初赛3月21日1002
- 2013腾讯马拉松编程初赛3月22日1001
- 2013腾讯马拉松编程初赛3月23日1001
- 3月25腾讯编程马拉松
- 2013年腾讯编程马拉松初赛第0场(3月20日)解题参考
- 2013年腾讯编程马拉松初赛第1场(3月21日)解题参考
- 2013年腾讯编程马拉松初赛第2场(3月22日)解题参考
- 2013腾讯马拉松编程初赛3月25日1001(HDU4525)
- 百思买员工试图阻止老式机器人被毁灭
- 数据库设计中一些注意事项
- GNU libmicrohttpd
- ORA-12560: TNS:protocol adapter error(TNS:协议适配器错误)
- Concurrency Kit
- 2013腾讯编程马拉松——复赛试题(3月29)
- 摄像头编程及其动态能力
- 三角类(构造函数初始化)
- Webkit插件实现的基本流程
- java基础--构造函数与内存分析(三)
- HTML5实现代码的隐藏(一种在图片里隐藏你的程序代码的技术)
- hdu 1229 还是A+B
- ABAP数据类型转化
- ubuntu下安装、卸载软件命令