【二维差分】Monitor

Monitor

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6514

Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 163840/163840 K (Java/Others)
Total Submission(s): 600    Accepted Submission(s): 190


 

Problem Description

Xiaoteng has a large area of land for growing crops, and the land can be seen as a rectangle of n×m. 

But recently Xiaoteng found that his crops were often stolen by a group of people, so he decided to install some monitors to find all the people and then negotiate with them.

However, Xiao Teng bought bad monitors, each monitor can only monitor the crops inside a rectangle. There are p monitors installed by Xiaoteng, and the rectangle monitored by each monitor is known. 

Xiao Teng guess that the thieves would also steal q times of crops. he also guessed the range they were going to steal, which was also a rectangle. Xiao Teng wants to know if his monitors can see all the thieves at a time.

 

 

Input

There are mutiple test cases.

Each case starts with a line containing two integers n,m(1≤n,1≤m,n×m≤107) which represent the area of the land.

And the secend line contain a integer p(1≤p≤106) which represent the number of the monitor Xiaoteng has installed. This is followed by p lines each describing a rectangle. Each of these lines contains four intergers x1,y1,x2 and y2(1≤x1≤x2≤n,1≤y1≤y2≤m) ,meaning the lower left corner and upper right corner of the rectangle.

Next line contain a integer q(1≤q≤106) which represent the number of times that thieves will steal the crops.This is followed by q lines each describing a rectangle. Each of these lines contains four intergers x1,y1,x2 and y2(1≤x1≤x2≤n,1≤y1≤y2≤m),meaning the lower left corner and upper right corner of the rectangle.

 

 

Output

For each case you should print q lines.

Each line containing YES or NO mean the all thieves whether can be seen.

 

 

Sample Input

 

6 6 3 2 2 4 4 3 3 5 6 5 1 6 2 2 3 2 5 4 1 5 6 5

 

 

Sample Output

 

YES NO

Hint

In the picture,the red solid rectangles mean the monitor Xiaoteng installed, and the blue dotted rectangles mean the area will be stolen.

 

题目大意:

有多组输入,对于每一组输入,先输入两个个整数n,m,其下一行是一个整数p,下面p行每行输入四个整数x1,y1,x2,y2,代表着从(x1,y1)到(x2,y2)这一矩形区域被全部标记,然后输入一个整数q,其下q行,每行输入四个整数x1,y1,x2,y2,如果矩形区域(x1,y1)到(x2,y2)这整个矩形均被标记,则输出YES,否则输出NO.

解题思路:

我们可以在图中将所有被标记过的矩形区域里面的数全部置为1,然后求一下面积的前缀和,在查询过程中,只需根据面积前缀和求出这一区域的面积,若求出的面积与该矩形的实际面积相同,则证明这一区域被全部覆盖,因此,在每一次输入覆盖区域时,我们可以通过类似差分的思想,将mapp[x1][y1],mapp[x2+1][y2+1]都加上一,将mapp[x1][y2+1],mapp[x2+1][y1]均减去一,然后求整个区域的和,对于那些mapp[i][j]>1,将其置为1,方便后面求面积的前缀和,最后求一下面积的前缀和,查询即可。注:此题数组范围不确定,只能根据n,m的值来开空间,否则会内存超限。

代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <bitset>
#include <set>
#include <utility>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define inf 0x3f3f3f3f
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define lep(i,l,r) for(int i=l;i>=r;i--)
#define ms(arr) memset(arr,0,sizeof(arr))
//priority_queue<int,vector<int> ,greater<int> >q;
const int maxn = (int)1e5 + 5;
const ll mod = 1e9+7;
/*vector<int> mapp[10000010];
*/int main() 
{#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);ios::sync_with_stdio(0),cin.tie(0);int n,m;while(scanf("%d %d",&n,&m)!=EOF) {/*rep(i,0,n+1) {mapp[i].clear();rep(j,0,m+1) {mapp[i].push_back(0);}}*/int **mapp;mapp=(int**)malloc(sizeof(int*)*(n+10));rep(i,0,n+1) mapp[i]=(int*)malloc(sizeof(int)*(m+10));rep(i,0,n+1) rep(j,0,m+1) mapp[i][j]=0;int p;int x1,x2,y1,y2;scanf("%d",&p);rep(i,1,p) {scanf("%d %d %d %d",&x1,&y1,&x2,&y2);mapp[x1][y1]++;mapp[x2+1][y2+1]++;mapp[x1][y2+1]--;mapp[x2+1][y1]--;}rep(i,1,n) {rep(j,1,m) {mapp[i][j]=mapp[i][j]+mapp[i-1][j]+mapp[i][j-1]-mapp[i-1][j-1];}}rep(i,1,n) {rep(j,1,m) {if(mapp[i][j]) mapp[i][j]=1;}}rep(i,1,n) {rep(j,1,m) {mapp[i][j]=mapp[i][j]+mapp[i-1][j]+mapp[i][j-1]-mapp[i-1][j-1];}}int q;scanf("%d",&q);rep(i,1,q) {scanf("%d %d %d %d",&x1,&y1,&x2,&y2);int ans=mapp[x2][y2]-mapp[x1-1][y2]-mapp[x2][y1-1]+mapp[x1-1][y1-1];if(ans==(x2-x1+1)*(y2-y1+1)) printf("YES\n");else printf("NO\n");}}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学】MORE XOR

Given a sequence of nnn numbers a1,a2,⋯&ThinSpace;,ana_1, a_2,\cdots, a_na1​,a2​,⋯,an​ and three functions. Define a function f(l,r)f(l,r)f(l,r) which returns ⊕a[x](l≤x≤r)\oplus a[x] (l \le x \le r)⊕a[x](l≤x≤r). The \oplus⊕ represents excl…

【数学】Element Swapping

Element Swapping Time Limit: 1 Second Memory Limit: 65536 KB DreamGrid has an integer sequence a1,a2,a3,…,ana_1,a_2,a_3,\dots,a_na1​,a2​,a3​,…,an​ and he likes it very much. Unfortunately, his naughty roommate BaoBao swapped two elements aia_iai​ an…

【二分+二维前缀和】Largest Allowed Area

Largest Allowed Area 时间限制: 1 Sec 内存限制: 128 MB 提交: 146 解决: 54 [提交] [状态] [命题人:admin] 题目描述 A company is looking for land to build its headquarters. It has a lot of money and can buy as many land patches as it needs. Its goal, howev…

【数学】Floating-Point Hazard

Floating-Point Hazard 时间限制: 1 Sec 内存限制: 128 MB 提交: 106 解决: 42 [提交] [状态] [命题人:admin] 题目描述 Given the value of low, high you will have to find the value of the following expression: If you try to find the value of the above express…

【manacher】Strings in the Pocket

Strings in the Pocket Time Limit: 1 Second Memory Limit: 65536 KB BaoBao has just found two strings ss1s2…snss_1s_2\dots s_nss1​s2​…sn​ and tt1t2…tntt_1t_2\dots t_ntt1​t2​…tn​ in his left pocket, where sis_isi​ indicates the iii-th character in…

【并查集+dp】Team

Team 时间限制: 1 Sec 内存限制: 128 MB 提交: 124 解决: 10 [提交] [状态] [命题人:admin] 题目描述 ACM-ICPC is a interesting game. A team takes part in this game must consist of exactly (no more and no less) three players. Every year, many new members wil…

【线段树】Segment Tree

Segment Tree 时间限制: 1 Sec 内存限制: 512 MB 提交: 107 解决: 23 [提交] [状态] [命题人:admin] 题目描述 Mcginn opens the code which he wrote 25 years ago. Clever Mcginn wants to know how many positive interger n satisfied that the maximum c can reach w…

UVA1025——A Spy in the Metro【dp】

题目链接&#xff1a;https://cn.vjudge.net/problem/UVA-1025 题目大意&#xff1a;Mario从第1站出发&#xff0c;目的是在时刻T会见车站 nnn 的一个间谍。由于在车站等待容易被抓&#xff0c;所以应尽量躲在开动的火车上&#xff0c;即在车站等待的时间最短&#xff0c;且Ma…

HDU1284——钱币兑换问题【dp】

钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14528 Accepted Submission(s): 8784 Problem Description 在一个国家仅有1分&#xff0c;2分&#xff0c;3分硬币&#xff0c;将钱N兑换成硬…

HDU6092——Rikka with Subset 【dp】

题目网址&#xff1a; https://vjudge.net/problem/HDU-6092 As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them: Yuta has nn positive A1−AnA1−An and their sum is mm…

洛谷P1725琪露诺【单调队列+dp】

题目描述 在幻想乡&#xff0c;琪露诺是以笨蛋闻名的冰之妖精。 某一天&#xff0c;琪露诺又在玩速冻青蛙&#xff0c;就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多&#xff0c;在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。 小河可以看…

扶桑号战列舰【RMQ+分治】

扶桑号战列舰 时间限制: 1 Sec 内存限制: 128 MB Special Judge 提交: 197 解决: 63 [提交] [状态] [命题人:admin] 题目描述 众所周知&#xff0c;一战过后&#xff0c;在世界列强建造超无畏级战列舰的竞争之中&#xff0c;旧日本海军根据“个舰优越主义”&#xff0c;建造了扶…

大凤号装甲空母【找规律+矩阵快速幂】

大凤号装甲空母 时间限制: 1 Sec 内存限制: 128 MB 提交: 108 解决: 15 [提交] [状态] [命题人:admin] 题目描述 大凤号航空母舰很喜欢算术。 它&#xff0c;是旧日本海军中最为先进的航空母舰。 它&#xff0c;是旧日本海军中最为短命的航空母舰。 同时&#xff0c;她还是最平…

codevs5429 多重背包【多重背包+单调队列】

5429 多重背包 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 你有一个容量为M的背包&#xff0c;和N种物品。 每种物品都有三个属性&#xff0c;vi&#xff0c;wi&#xff0c;与ci&#xff0c;分别表示这种物品的体积、价值和件数。 你的…

generator 1【矩阵快速幂】

题目描述 You are given four positive integers x0,x1,a,bx_0, x_1, a, bx0​,x1​,a,b. And you know xia⋅xi−1b⋅xi−2x_i a \cdot x_{i-1} b \cdot x_{i-2}xi​a⋅xi−1​b⋅xi−2​ for all i≥2i \ge 2i≥2. Given two positive integers n, and MOD, please calcul…

Give Candies【快速幂+欧拉】

Give Candies 时间限制: 1 Sec 内存限制: 128 MB 提交: 243 解决: 92 [提交] [状态] [命题人:admin] 题目描述 There are N children in kindergarten. Miss Li bought them N candies。To make the process more interesting, Miss Li comes up with the rule: All the childr…

Save the Room【找规律】

Save the Room 时间限制: 1 Sec 内存限制: 128 MB 提交: 149 解决: 90 [提交] [状态] [命题人:admin] 题目描述 Bob is a sorcerer. He lives in a cuboid room which has a length of A, a width of B and a height of C, so we represent it as ABC. One day, he finds that …

Participate in E-sports【Java大数+二分】

Participate in E-sports 时间限制: 2 Sec 内存限制: 128 MB 提交: 194 解决: 53 [提交] [状态] [命题人:admin] 题目描述 Jessie and Justin want to participate in e-sports. E-sports contain many games, but they don’t know which one to choose, so they use a way to…

Poor God Water【矩阵快速幂】

Poor God Water 时间限制: 1 Sec 内存限制: 128 MB 提交: 102 解决: 50 [提交] [状态] [命题人:admin] 题目描述 God Water likes to eat meat, fish and chocolate very much, but unfortunately, the doctor tells him that some sequence of eating will make them poisonou…

Transport Ship【多重背包】

Transport Ship 时间限制: 1 Sec 内存限制: 128 MB 提交: 175 解决: 65 [提交] [状态] [命题人:admin] 题目描述 There are N different kinds of transport ships on the port. The i^th kind of ship can carry the weight of V[i] and the number of the ith kind of ship i…