HDU 4533 威威猫系列故事——晒被子
扫描线可做,然后当时比赛后问虎哥,他说可以标记,然后拖了很久,今天从早上折腾到晚上,终于把两种情况写出来,分析太弱。改天扫描线,再来一次。
被子如果被y = x 穿过,可以分成两部分,上和下,很容易发现这两部分,都是以1递增的,画画图,更好理解,这样注意很多特殊的情况,例如,分不成上下部分,还有穿过后,多着一部分,讨论各种情况就好,静下心来,仔细分析。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
#define N 200100
#define LL __int64
LL num[N],flag[N];
int p[N];
LL ans[N],x;
int main()
{
int cas,i,n,m,maxz1,minz1,maxz2,minz2;
int x1,y1,x2,y2;
scanf("%d",&cas);
while(cas--)
{
memset(flag,,sizeof(flag));
memset(num,,sizeof(num));
scanf("%d",&n);
for(i = ;i < n;i ++)
{
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
if(y1 >= x2)
{
num[y1+] += x2-x1;
num[y2+] -= x2-x1;
}
else if(x1 >= y2)
{
num[x1+] += y2-y1;
num[x2+] -= y2-y1;
}
else
{
maxz1 = max(x1,y1);
minz1 = min(x1,y1);
flag[maxz1+] += ;
num[maxz1+] += maxz1-minz1+;
maxz2 = max(x2,y2);
minz2 = min(x2,y2);
flag[minz2+] -= ;
if(x2 > y2)
{
num[y2+] -= y2-x1-;
num[x2+] -= y2-y1;
}
else
{
num[x2+] -= x2-y1-;
num[y2+] -= x2-x1;
}
}
}
scanf("%d",&m);
for(i = ;i < m;i ++)
scanf("%d",&p[i]);
x = ;
for(i = ;i <= p[m-];i ++)
{
flag[i] = flag[i] + flag[i-];
x = x + num[i] + flag[i];
ans[i] = ans[i-] + x;
}
for(i = ;i < m;i ++)
{
printf("%I64d\n",ans[p[i]]);
}
}
return ;
}
/*
1
1
1 1 3 10
4
6
7
8
10 1
1
1 2 5 4
4
6
7
8
10
*/
HDU 4533 威威猫系列故事——晒被子的更多相关文章
- hdu4533 威威猫系列故事——晒被子
Problem Description 因为马拉松初赛中吃鸡腿的题目让不少人抱憾而归,威威猫一直觉得愧对大家,这几天他悄悄搬到直角坐标系里去住了. 生活还要继续,太阳也照常升起,今天,威威猫在第一象限 ...
- HDU-4533 威威猫系列故事——晒被子(区间更新)
题目大意:在平面直角坐标系的第一象限中,给出n个矩形(可能重叠).有m次询问,每次询问点(t,t)的左下方的正方形区域中矩形的总面积(重叠部分重叠几次就得统计几次). 题目分析:线段树的叶子节点x维护 ...
- HDU 4540 威威猫系列故事——打地鼠
威威猫系列故事--打地鼠 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Su ...
- hdu 4523 威威猫系列故事——过生日 小模拟
威威猫系列故事——过生日 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- hdu 4540 威威猫系列故事——打地鼠 dp小水题
威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- HDU 4540 威威猫系列故事——打地鼠 (状态压缩DP)
威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- HDU--杭电--4504--威威猫系列故事——篮球梦--DP
威威猫系列故事——篮球梦 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- HDUOJ----4504 威威猫系列故事——篮球梦
威威猫系列故事——篮球梦 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- hdoj 4526 威威猫系列故事——拼车记
威威猫系列故事——拼车记 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
随机推荐
- Python 正则表达式_re模块_使用compile加速
使用compile加速 compile( rule [,flag] ) 将正则规则编译成一个Pattern对象,以供接下来使用. 第一个参数是规则式,第二个参数是规则选项. 返回一个Pattern对象 ...
- mybatis3 :insert返回插入的主键(selectKey)
Mysql: 主键自增长. 加上:keyProperty="id"就可以获得了. <insert id="insert" parameterType=&q ...
- 菜单栏展开和收起效果(纯js)
2014年6月25日 15:36:29 需要关注的是: 1.用cookie保存用户当前点击的菜单项,不打扰后端代码 2.通过数学计算得到要显示和隐藏的div 3.点击事件是动态绑定到a标签上的,因此当 ...
- javascript动态添加一组input
2013年12月18日 20:56:29 场景: 批量添加 友情链接 功能 每个友情链接记录有3个字段:名字(name),超链接(url),排序(order) 要求每次点击"添加" ...
- ORACLE查询当前资产状态,和另一个数据库联查,(查询重复数据中第一条),子查询作为字段查询
背景:ORACLE查询当前资产状态,包含资产信息(表1),资产维修状态(表2),资产报废状态(表3) 如下: 资产信息:
- 安装绿色版mysql
#修改my.ini basedir = "D:\tools\mysql-5.7.13-winx64" datadir = "D:\tools\mysql-5.7.13-w ...
- MVC准备前基础知识
一.自动属性C#自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑public class Product{ public int Id { get; set; } pub ...
- gitlab安装
[root@localhost ~]# wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rp ...
- GDB调试笔记
参考资料:GDB调试精粹及使用实例 # 调试实例 #include <iostream> #include <cstring> using namespace std; ][] ...
- BZOJ 1192: [HNOI2006]鬼谷子的钱袋 数学结论
1192: [HNOI2006]鬼谷子的钱袋 Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的 ...