hdu5671 Conturbatio(思维)
来源:互联网 发布:mysql sum group by 编辑:程序博客网 时间:2024/06/06 01:45
Conturbatio
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 975 Accepted Submission(s): 439
Problem Description
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?
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?
Input
The first line of the input is a integer T , meaning that there are T test cases.
Every test cases begin with four integersn,m,K,Q .
K is the number of Rook, Q is the number of queries.
ThenK lines follow, each contain two integers x,y describing the coordinate of Rook.
ThenQ lines follow, each contain four integers x1,y1,x2,y2 describing the left-down and right-up coordinates of query.
1≤n,m,K,Q≤100,000 .
1≤x≤n,1≤y≤m .
1≤x1≤x2≤n,1≤y1≤y2≤m .
Every test cases begin with four integers
Then
Then
Output
For 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
YesNoYesHintHuge input, scanf recommended.
Source
BestCoder Round #57 (div.2)
在一个n \times mn×m的国际象棋棋盘上有很多车(Rook),其中车可以攻击他所属的一行或一列,包括它自己所在的位置。
现在还有很多询问,每次询问给定一个棋盘内部的矩形,问矩形内部的所有格子是否都被车攻击到?
输入描述
输入文件包含多组数据,第一行为数据组数TT。
每组数据有4个正整数n , m , K , Qn,m,K,Q。
KK为车的数量,QQ为询问的个数。
接下来有KK行,每行两个整数x , yx,y , 表示车所在的坐标。
再接下来有QQ行,每行4个整数x1 , y1 , x2 , y2x1,y1,x2,y2,表示询问的矩形的左下角与右上角的坐标。
现在还有很多询问,每次询问给定一个棋盘内部的矩形,问矩形内部的所有格子是否都被车攻击到?
输入描述
输入文件包含多组数据,第一行为数据组数TT。
每组数据有4个正整数n , m , K , Qn,m,K,Q。
KK为车的数量,QQ为询问的个数。
接下来有KK行,每行两个整数x , yx,y , 表示车所在的坐标。
再接下来有QQ行,每行4个整数x1 , y1 , x2 , y2x1,y1,x2,y2,表示询问的矩形的左下角与右上角的坐标。
完全没思路,可能还是因为做题少,定义四个一维数组,两个表示行和列,另外两个表示行或列增加的值,这样就ok了,感觉很神奇啊。
#include<cstdio>#include<algorithm>#include<cstring>#define N 1005#define mem(a,b) memset(a,b,sizeof(a))using namespace std;int map[N][N],a[N],b[N],c[N],d[N];int main(){int t;scanf("%d",&t);while(t--){mem(a,0); mem(b,0);mem(c,0); mem(d,0);int n,m,q;scanf("%d%d%d",&n,&m,&q);for(int i=1;i<=n;i++){a[i]=i;for(int j=1;j<=m;j++){b[j]=j;scanf("%d",&map[i][j]);}}while(q--){int u,x,y;scanf("%d%d%d",&u,&x,&y);if(u==1)swap(a[x],a[y]);else if(u==2)swap(b[x],b[y]);else if(u==3)c[a[x]]+=y;//这一行所要增加的值 else d[b[x]]+=y;}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(j!=m) printf("%d ",map[a[i]][b[j]]+c[a[i]]+d[b[j]]);//因为位置发生交换了,所以为map[a[i]][b[j]]else printf("%d\n",map[a[i]][b[j]]+c[a[i]]+d[b[j]]);}}}return 0;}
0 0
- hdu5671 Conturbatio(思维)
- hdu5480 Conturbatio(思维)
- 【HDU】-5480-Conturbatio(思维,好)
- hdoj 5480 Conturbatio 【思维】
- hdoj 5480 Conturbatio (思维)
- hdoj5480 Conturbatio(思维)
- hdu5671
- 几道题(hdu5671 && hdu5672 && hdu5673)
- Conturbatio
- Conturbatio
- Conturbatio
- HDU5480:Conturbatio(前缀和)
- hdu5671 Matrix
- HDU 5480 Conturbatio(前缀和)
- HDU 5480 Conturbatio(树状数组)
- HDU5671矩阵行列交换
- HDU5671-Matrix 区间加减
- HDU 5480 Conturbatio(二维树状数组维护区间和)
- 题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶结点所经过的结点形成一条路径。
- application、session、request
- UILabel 详解
- 自定义ActionBar View
- onenote无法打开链接出现错误您的组织策略阻止我们为您完成此操作
- hdu5671 Conturbatio(思维)
- uva 1543 dp
- J2SE 利用Java函数画曲线
- 使用WindowManager.addView()模拟直播软件悬浮窗口播放视频
- MillerRabin 快速的素数概率判定法
- Java BigInteger相关知识点
- Spark分布式计算和RDD模型研究
- 侧滑菜单-自定义HorizaontalScrollView
- HDU 1009FatMouse' Trade