code+3月赛 loj6299 白金元首与克劳德斯
千里白金雪满天 烽火江山起狼烟 分手竟兵刃相见
1941.7.
苏联军队出乎意料的反抗力量、前线德军的补给困难 —— 元首 Adolf 望着天空的云层陷入沉思……
在 xyxyxy-直角坐标平面的天空中,有 nnn 片四边平行于坐标轴的矩形云朵。每一片云由一个五元组 (xi,yi,wi,hi,di)(x_i, y_i, w_i, h_i, d_i)(xi,yi,wi,hi,di) 表示,其中 (xi,yi)(x_i, y_i)(xi,yi) 为云左下角顶点的坐标,wiw_iwi 表示云在 xxx 轴方向的宽度,hih_ihi 表示云在 yyy 轴方向的长度,di∈{0,1}d_i \in \{0, 1\}di∈{0,1} 为云的移动方向(000 为横向,111 为纵向)。具体来说,满足 di=0d_i = 0di=0 的云沿 xxx 轴正方向以每秒 111 长度单位的速率不断移动,而满足 di=1d_i = 1di=1 的云沿 yyy 轴正方向以每秒 111 长度单位的速率不断移动。
元首发现,所有的云在此时没有重叠的面积。他将这个时刻记作时刻 000。他想知道,对于 (−∞,+∞)(-\infty, +\infty)(−∞,+∞) 中的任意时刻和平面上的任意一个点,最多可以同时被多少片云覆盖。一个点在某时刻被一朵云覆盖当且仅当这个点位于该时刻云朵所处矩形的内部(不含边界)。
你需要编写程序帮助元首满足他的好奇心。
输入格式
从标准输入读入数据。
输入的第一行包含一个正整数 TTT —— 数据的组数。接下来包含 TTT 组数据,格式如下,数据间没有空行。
- 第 111 行:一个正整数 nnn —— 云朵的数量。
- 接下来 nnn 行:每行五个空格分隔的整数 xix_ixi、yiy_iyi、wiw_iwi、hih_ihi 和 did_idi —— 描述一朵云在时刻 000 的状态。
输出格式
输出到标准输出。
对于每组数据输出一行 —— 在任意时刻,覆盖平面上任意一个点的云朵数目的最大值。
样例
样例输入
3
1
0 0 1 1 0
3
0 -10 10 10 1
10 0 10 10 1
-10 0 10 10 0
3
0 10 10 10 1
10 20 10 10 1
10 0 10 10 0
样例输出
1
2
2
第 111 组数据中,任意时刻的任意一个点至多被惟一的一片云覆盖。
第 222 组数据中,下图从左至右分别示意时刻 000、时刻 444、时刻 111111 的情形。

第 333 组数据中,时刻 000 对应第 222 组数据时刻 202020 的情形。在该组数据中,(−20,0)(-20, 0)(−20,0) 内的时刻均有 222 片云覆盖同一个点。请注意考察范围 (−∞,+∞)(-\infty, +\infty)(−∞,+∞) 包含时刻 000 之前的时间段。
数据范围与提示
子任务
对于所有数据,有 1≤T≤151 \leq T \leq 151≤T≤15,−5×108≤xi,yi≤−5×108-5 \times 10^8 \leq x_i, y_i \leq -5 \times 10^8−5×108≤xi,yi≤−5×108,1≤wi,hi≤−5×1081 \leq w_i, h_i \leq -5 \times 10^81≤wi,hi≤−5×108,di∈{0,1}d_i \in \{0, 1\}di∈{0,1}。
| 测试点编号 | nnn | 特殊约定 |
|---|---|---|
| 1 | ≤1\leq 1≤1 | 无 |
| 2 | ≤2\leq 2≤2 | |
| 3 | ≤10\leq 10≤10 | −50≤xi,yi≤50-50 \leq x_i, y_i \leq 50−50≤xi,yi≤50,1≤wi,hi≤501 \leq w_i, h_i \leq 501≤wi,hi≤50 |
| 4 | ≤50\leq 50≤50 | |
| 5 | ≤100\leq 100≤100 | wi=hi=1w_i = h_i = 1wi=hi=1 |
| 6 | ≤1000\leq 1000≤1000 | −103≤xi,yi≤103-10^{3} \leq x_i, y_i \leq 10^{3}−103≤xi,yi≤103,1≤wi,hi≤1031 \leq w_i, h_i \leq 10^{3}1≤wi,hi≤103 |
| 7 | ||
| 8 | wi=hi=1w_i = h_i = 1wi=hi=1 | |
| 9 | ≤100000\leq 100000≤100000 | |
| 10 | 无 |
“Dann soll die Armee eben kehrt machen!”
题面与史实无关。
提示
最大输入约为 50 MiB,请注意程序在读入上的耗时哦。
来自 CodePlus 2017 3 月赛,清华大学计算机科学与技术系学生算法与竞赛协会 荣誉出品。
Credit:idea/吕时清 命题/吕时清 验题/丁子钧
Git Repo:https://git.thusaac.org/publish/CodePlus3
感谢腾讯公司对此次比赛的支持。

/*
Welcome Hacking
Wish You High Rating
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<ctime>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<string>
#include<set>
using namespace std;
int read(){
int xx=,ff=;char ch=getchar();
while(ch>''||ch<''){if(ch=='-')ff=-;ch=getchar();}
while(ch>=''&&ch<=''){xx=xx*+ch-'';ch=getchar();}
return xx*ff;
}
int T,N;
struct cloud_{
int x,y,w,h,d;
bool friend operator<(const cloud_&A,const cloud_&B)
{return A.x+A.y<B.x+B.y;}
}C[];
set<cloud_>s;
int calc(){
s.clear();
for(int i=;i<=N;i++)
if(!C[i].d)
s.insert(C[i]);
for(int i=;i<=N;i++)
if(C[i].d){
set<cloud_>::iterator j=s.lower_bound(C[i]);
if(j!=s.end())
if(C[i].x+C[i].y+C[i].w+C[i].h>j->x+j->y)
return ;
}
//两种相交的情况都要判断
s.clear();
for(int i=;i<=N;i++)
if(C[i].d)
s.insert(C[i]);
for(int i=;i<=N;i++)
if(!C[i].d){
set<cloud_>::iterator j=s.lower_bound(C[i]);
if(j!=s.end())
if(C[i].x+C[i].y+C[i].w+C[i].h>j->x+j->y)
return ;
}
return ;
}
int main(){
//freopen("in","r",stdin);
//freopen("out","w",stdout);
for(int T=read();T;T--){
N=read();
for(int i=;i<=N;i++)
C[i].x=read(),C[i].y=read(),C[i].w=read(),C[i].h=read(),C[i].d=read();
sort(C+,C++N);
printf("%d\n",calc());
}
return ;
}
code+3月赛 loj6299 白金元首与克劳德斯的更多相关文章
- 【LibreOJ】#6299. 「CodePlus 2018 3 月赛」白金元首与克劳德斯
[题意]给出坐标系中n个矩形,类型1的矩形每单位时间向x轴正方向移动1个单位,类型2的矩形向y轴正方向,初始矩形不重叠,一个点被矩形覆盖当且仅当它在矩形内部(不含边界),求$(-\infty ,+\i ...
- 「CodePlus 2018 3 月赛」白金元首与克劳德斯
所有的云在此时没有重叠的面积 所有的云在此时没有重叠的面积 所有的云在此时没有重叠的面积 所有的云在此时没有重叠的面积 所有的云在此时没有重叠的面积 所有的云在此时没有重叠的面积 所有的云在此时没有重 ...
- [NOIP2019模拟赛]LuoguP4261白金元首与克劳德斯
题目描述 给出坐标系中n个矩形,类型1的矩形每单位时间向x轴正方向移动1个单位,类型2的矩形向y轴正方向,初始矩形不重叠,一个点被矩形覆盖当且仅当它在矩形内部(不含边界),求$(-\infty ,+\ ...
- [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞
[LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞 试题描述 到河北省 见斯大林 / 在月光下 你的背影 / 让我们一起跳舞吧 うそだよ~ 河北省怎么可能有 Stalin. ...
- 「CodePlus 2017 12 月赛」白金元首与独舞
description 题面 data range \[ 1 \leq T \leq 10, 1 \leq n, m \leq 200 , 0 \leq k \leq \min(nm, 300)\] ...
- 【LibreOJ】#6259. 「CodePlus 2017 12 月赛」白金元首与独舞
[题目]给定n行m列的矩阵,每个位置有一个指示方向(上下左右)或没有指示方向(任意选择),要求给未定格(没有指示方向的位置)确定方向,使得从任意一个开始走都可以都出矩阵,求方案数.n,m<=20 ...
- 「CodePlus 2018 3 月赛」白金元首与莫斯科
$n \leq 17,m \leq 17$,$n*m$的01矩形,对每一个0问:当他单独变成1之后,在其他0处放多米诺牌(不一定放满,可以不放)的方案数.膜$1e9+7$. 直接$dp$是$n^42^ ...
- 走进矩阵树定理--「CodePlus 2017 12 月赛」白金元首与独舞
n,m<=200,n*m的方阵,有ULRD表示在这个格子时下一步要走到哪里,有一些待决策的格子用.表示,可以填ULRD任意一个,问有多少种填法使得从每个格子出发都能走出这个方阵,答案取模.保证未 ...
- loj6259「CodePlus 2017 12 月赛」白金元首与独舞
分析 我们将没连的点连向周围四个点 其余的按照给定的方向连 我们将所有连出去的位置统一连到0点上 再以0作为树根 于是就将问题转化为了有向图内向树计数 代码 #include<iostream& ...
随机推荐
- JDBC配置MSSQL
使用JDBC连接SQL SERVER 这可能是个很老套的话题,但不管怎么说还是有用的.姑且把配置方法贴出来吧.1. 确认Sql Server的的运行状态打开Sql Server配置管理器,确认Sql ...
- ocelot+consul+identity4的使用demo
Ocelot网关搭建 搭建core控制台项目 本demo采用2.1版本 命名为APPIGateWay 在Nuget包中添加Ocelot引用 选用8.0.0版本 添加Ocelot.json 文件 内容为 ...
- TestNG套件测试(一)
测试套件是用于测试软件程序的行为或一组行为的测试用例集合. 在TestNG中,我们无法在测试源代码中定义一个套件,但它可以由一个XML文件表示,可以灵活配置要运行的测试. 套件用<suite&g ...
- python实现给定一个数和数组,求数组中两数之和为给定的数
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数.你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target = ...
- python 全栈之路
目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...
- lucas定理和组合数学
自湖南长沙培训以来的坑...一直未填,今天把这个问题解决掉. 参考: 1.http://www.cnblogs.com/Var123/p/5523068.html 2.http://blog.csdn ...
- shrink&split
shrink将分片数按因子缩减.hard link segment文件.因缩减前后hash一致,不需要rehash.如:0 ,1 , 2, 3, 4, 5, 6, 7, 8.9个分片缩减成3个:0 [ ...
- [BZOJ1163&1339]Mafia
[Baltic2008]Mafia 题目 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用最小的代价控制一些车站,使得去掉这些车站后, ...
- bzoj4518征途 斜率优化
征途这是一道十分经典的斜率优化 我们可以从题目中的方差来想,也就很容易的到这个式子 \[ans=m^2*\frac{\sum_{i=1}^{m}{(x_i-{\overline{x}})^2}}{m} ...
- sql server internal book
Frequently Bought Together + + Total price: $131.71 Add all three to CartAdd all three to List Buy t ...