2019中山大学程序设计竞赛-Monitor
题目大意:给你一个n*m的矩形,在这个矩形内告诉你p个矩形(左下角和右上角坐标),问你q个问题,每次也是给你一个矩形(左下角和右上角坐标),问你每个矩形是否可以被开始给的p个矩形完全覆盖。
思路:n*m范围是1e7,无法开二维数组,二维坐标可以转化为(n-1)*m+m,用一维数组来记录每个坐标的前缀和(即为这个点与0,0点组成矩形的面积),先通过二维差分,将前缀和记录一边。因为有覆盖的情况,所以将前缀和大于0的初始化为1,在来一遍前缀和,处理好之后就可以O(1)的时间算出每个矩形是否可以覆盖。
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e7+;
int sum[maxn];
int d[maxn];
int n,m;
int fun(int x,int y)
{
int t=m*(y-)+x;
if(t>=&&t<=(n*m))
return t;
else
return ;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie();
cin>>n>>m;
int p;
cin>>p;
for(int i=; i<=p; i++)
{
int x1,y1,x2,y2;
cin>>y1>>x1>>y2>>x2;
d[fun(x1,y1)]+=;
d[fun(x2+,y2+)]+=;
d[fun(x1,y2+)]-=;
d[fun(x2+,y1)]-=;
}
for(int j=; j<=n; j++)
for(int i=; i<=m; i++)
{
sum[fun(i,j)]=sum[fun(i,j-)]+sum[fun(i-,j)]-sum[fun(i-,j-)]+d[fun(i,j)];
}
for(int i=; i<=n*m; i++)
{
if(sum[i]!=)
sum[i]=;
}
// for(int j=n; j>=1; j--)
// {
// for(int i=1; i<=m; i++)
// {
// if(sum[fun(i,j)]!=0)
// printf("%d ",sum[fun(i,j)]);
// else
// printf("0 ");
// }
// printf("\n");
// }
for(int j=; j<=n; j++)
for(int i=; i<=m; i++)
{
sum[fun(i,j)]+=sum[fun(i,j-)]+sum[fun(i-,j)]-sum[fun(i-,j-)];
}
int q;
cin>>q;
for(int i=; i<=q; i++)
{
int x1,y1,x2,y2;
cin>>y1>>x1>>y2>>x2;
int ans=sum[fun(x2,y2)]-sum[fun(x2,y1-)]-sum[fun(x1-,y2)]+sum[fun(x1-,y1-)];
if(ans==((x2-x1+)*(y2-y1+)))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
2019中山大学程序设计竞赛-Monitor的更多相关文章
- 2019中山大学程序设计竞赛 Triangle
今天水了一发hdu上的中山校赛 这个题交了将近十遍才过...... 就是说给 n 个木棍,如果能找出3个能组成三角形的木棍就输出yes 反之输出no 乍一看很简单 一个排序遍历一遍就好了 但是n值太大 ...
- 2019中山大学程序设计竞赛(重现赛) Clumsy Keke
Problem Description Keke is currently studying engineering drawing courses, and the teacher has taug ...
- 2019安徽省程序设计竞赛 D.自驾游(最短路)
这道题最后没过,估计是痛失省一了,现在来补一下,当时思路是对的应该是代码出了问题导致样例没过最后nc的除了2,一直WA 题意: 给一张联通图,有两个导航系统,其中一个系统认为第i条边的权值是Pi,另一 ...
- 2019安徽省程序设计竞赛 I.你的名字(序列自动机)
这题和今年南昌邀请网络预选赛M题很像啊,不过主串数量不是一个了 都是在主串中判断子串是不是属于主串的一个子序列 #include <iostream> #include <cstri ...
- 吉首大学2019年程序设计竞赛(重现赛)D - 数列求和(嘤雄难度)
链接:https://ac.nowcoder.com/acm/contest/992/D $a_{i}=\dfrac {3a_{i-1}-a_{i-2}}{2}+i+1$ 移项再化一下 $a_{i}- ...
- 吉首大学2019年程序设计竞赛(重现赛)- A SARS病毒 (矩阵,欧拉降幂)
题目链接:https://ac.nowcoder.com/acm/contest/992/A 题意:求出长度为n的字符串个数,字符串由A.C.G.T组成,其中A和C必须成对出现. 思路:我们规定: ...
- 吉首大学2019年程序设计竞赛(重现赛)-K(线段树)
题目链接:https://ac.nowcoder.com/acm/contest/992/K 题意:给一个大小为1e5的数组,由0 1组成,有两种操作,包括区间修改,将一段区间内的0换成1,1换成0; ...
- 吉首大学2019年程序设计竞赛(重现赛)-J(树形DP)
题目链接:https://ac.nowcoder.com/acm/contest/992/J 题意:题意很清晰,就是求任意两点距离的和,结果对1e9+7取模. 思路:裸的树形DP题,一条边的贡献值=这 ...
- 吉首大学2019年程序设计竞赛-F 天花乱坠
题目链接:https://ac.nowcoder.com/acm/contest/992/F 题意:给定正n边形,边长为100,以每条边的中点连线构成新的正n边形,无限循环下去,求所有边的长度和. 思 ...
随机推荐
- redis批量灌库
需求:将批量数据灌入redis中 如果通过代码形式将数据灌入redis中,效率比较低,以下将根据redis的特性进行快速的批量灌库 环境:centos7 将数据整理成规定格式的文件,比如: SET k ...
- Jquery笔记和ajax笔记
Jquery笔记:jQuery是一个JavaScript函数库,专为事件处理设计 1.jQuery的引入 <script text="type/javascript" src ...
- spring boot启动项的问题
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...
- #2018-2019-2-20175204 张湲祯 实验一 《Java开发环境的熟悉》实验报告
2018-2019-2-20175204 张湲祯 实验一 <Java开发环境的熟悉>实验报告 一.实验内容及步骤 一.使用JDK编译.运行简单的Java程序 1.输入cd zyz命令进入z ...
- Ansible运维自动化工具19个常用模块使用实例【转】
一.模块列表 1.setup 2.ping 3.file 4.copy 5.command 6.shell 7.script 8.cron 9.yum 10.service 11.group 12.u ...
- 安装 python pip Django
python 安装 1. 官网下载:以 window 为例,按提示下载,版本号根据实际需求选择: 2. 选择路径,安装完成后,命令行输入 python 检测是否安装成功,下图为安装成功显示:quit( ...
- WebApi-1 与MVC路由机制比较
在MVC里面,默认路由机制是通过url路径去匹配对应的action方法 public class RouteConfig { public static void RegisterRoutes(Rou ...
- vue性能
刚开始接触vue觉得vue真是好,用起来好方便呀,与以往的用jquery类库写逻辑,简直方便的要死.网上也都是对vue的好评,但是呢我现在的感觉就是vue真坑,真垃圾. 先说的我们项目遇到到问 ...
- 快捷键打开Generate
在eclipse下有覆盖toString.hashcode.setter.getter等功能. 在intelj idea中,同样具有类似的功能. 按下键盘上的alt+insert键,就会弹出gener ...
- 关联管理器(RelatedManager)
一.class RelatedManager "关联管理器"是在一对多或者多对多的关联上下文中使用的管理器.它存在于下面两种情况: 1.一对多 ForeignKey关系的“另一边” ...