博客
关于我
HDU 5480
阅读量:149 次
发布时间: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/

你可能感兴趣的文章
mysql安装,卸载,连接
查看>>
MySQL安装之没有配置向导
查看>>
mysql安装出现 conflicts with mysql*的解决办法
查看>>
mysql安装卡在最后一步解决方案(附带万能安装方案)
查看>>
mysql安装和启动命令小结
查看>>
Mysql安装教程(命令行)
查看>>
mysql安装版安装
查看>>
MySQL安装配置教程(非常详细),从零基础入门到精通,看完这一篇就够了
查看>>
mysql安装配置简介
查看>>
MySQL定义和变量赋值
查看>>
mysql定时任务事件清理单表数据
查看>>
MySQL定时器Events
查看>>
Mysql定时备份脚本
查看>>
mysql实战01|基础架构:一条SQL查询语句是如何执行的?
查看>>
Mysql实战之数据备份
查看>>
MySQL实战教程:从小白到大神的进阶之路!
查看>>
mysql实现成绩排名
查看>>
Mysql客户端中文乱码问题解决
查看>>
mysql客户端工具使用
查看>>
MySQL密码忘记,怎么办?
查看>>