博客
关于我
HDU 5480
阅读量:146 次
发布时间:2019-02-27

本文共 2000 字,大约阅读时间需要 6 分钟。

传送门 :

There are many rook on a chessboard, a rook can attack the row and column it belongs, including its own place. 
There are also many queries, each query gives a rectangle on the chess board, and asks whether every grid in the rectangle will be attacked by any rook? 
InputThe first line of the input is a integer 
TT, meaning that there are 
TT test cases. 
Every test cases begin with four integers 
n,m,K,Qn,m,K,Q
KK is the number of Rook, 
QQ is the number of queries. 
Then 
KK lines follow, each contain two integers 
x,yx,y describing the coordinate of Rook. 
Then 
QQ lines follow, each contain four integers 
x1,y1,x2,y2x1,y1,x2,y2 describing the left-down and right-up coordinates of query. 
1n,m,K,Q100,0001≤n,m,K,Q≤100,000
1xn,1ym1≤x≤n,1≤y≤m
1x1x2n,1y1y2m1≤x1≤x2≤n,1≤y1≤y2≤m
OutputFor every query output "Yes" or "No" as mentioned above.

Sample Input

22 2 1 21 11 1 1 22 1 2 22 2 2 11 11 22 1 2 2
Sample Output
YesNoYes

        题目大意:棋盘上的一个车可以吃掉同一行同一列的棋子,告诉你 车 的坐标和 一块区域,看看在这块区域中的棋子是不是都会被吃掉

        前缀和 ? 

        树状数组??

        代码如下    

#include 
#include
#include
#include
#include
using namespace std;const int maxn=100000+10;int row[maxn],col[maxn];int main(){ int t; scanf("%d",&t); while(t--) { int n,m,k,q; memset(row,0,sizeof(row)); memset(col,0,sizeof(col)); scanf("%d%d%d%d",&n,&m,&k,&q); while(k--) { int a,b; scanf("%d%d",&a,&b); row[a]=1,col[b]=1; //赋值为1 有可能出现相同的不能累加 } for(int i=1;i<=n;i++) { row[i]+=row[i-1]; } for(int i=1;i<=m;i++) { col[i]+=col[i-1]; } while(q--) { int x1,y1,x2,y2,res1,res2; scanf("%d%d%d%d",&x1,&y1,&x2,&y2); res1=row[x2]-row[x1-1]; res2=col[y2]-col[y1-1]; if(res1==(x2-x1+1)||res2==(y2-y1+1)) printf("Yes\n"); else printf("No\n"); } } return 0;}

转载地址:http://xiib.baihongyu.com/

你可能感兴趣的文章
html5学习9:HTML5文档结构详解
查看>>
介绍一个不错的分析客户价值的模型RFM
查看>>
SpringMVC---使用
查看>>
2.2.4 加减法运算和溢出判断更换
查看>>
2.2.6 强制类型转换
查看>>
计算机网络教程 谢希仁 第三章 数据链路层
查看>>
Redis缓存数据的处理流程
查看>>
ACM-ICPC寒假算法训练1:搜索 HDOJ P1010 : Tempter of the Bone 奇偶剪枝分析
查看>>
【java】227. 基本计算器 II---思路简单,代码清晰!!!
查看>>
【java】115. 不同的子序列----学会动态规划,时间复杂度O(n^2)!!!
查看>>
【java】368. 最大整除子集---使用动态规划,快速解决子问题!!!
查看>>
莫比乌斯函数
查看>>
第十一届十月份蓝桥杯省赛 H - 子串分值和:求字符串所有子串的不同字符个数和(思维/线段树)
查看>>
HDU - 6514 Monitor(二维差分+二维前缀和)
查看>>
LINUX延时函数使用
查看>>
数据结构第七章(图---总结一)
查看>>
2020-12-24
查看>>
JDBC——(6)PreparedStatement的使用
查看>>
JDBC——(6)PreparedStatement的使用——实现查询操作
查看>>
JDBC——小知识:PreparedStatement 和Statement的比较
查看>>