题目:https://www.luogu.org/problemnew/show/P4030

可以发现一个矩阵是巧妙矩阵当且仅当其所有二阶子矩阵都是巧妙矩阵;

将不巧妙的二阶矩阵计为1,维护二维前缀和,查询得出当前范围内不巧妙二阶矩阵的个数,若为0则大矩阵是巧妙矩阵。

代码如下:

#include<iostream>
#include<cstdio>
using namespace std;
int a[505][505],f[505][505],n,m,t;
int main()
{
scanf("%d%d%d",&n,&m,&t);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for(int i=1;i<n;i++)
for(int j=1;j<m;j++)
{
f[i][j]=f[i][j-1]+(a[i][j]+a[i+1][j+1]!=a[i+1][j]+a[i][j+1]);
// f[i][j]+=f[i-1][j];//不对
}
for(int i=1;i<n;i++)
for(int j=1;j<m;j++)f[i][j]+=f[i-1][j];
while(t--)
{
int x,y,k;
scanf("%d%d%d",&x,&y,&k);
if(f[x+k-2][y+k-2]-f[x-1][y+k-2]-f[x+k-2][y-1]+f[x-1][y-1]==0)//x-1!y-1!
printf("Y\n");
else printf("N\n");
}
return 0;
}

最新文章

  1. Go语言常用命令介绍
  2. VS2013打开项目Web加载失败
  3. oracle xmltype导入并解析Excel数据 (四)特别说明
  4. 清除Windows的DNS缓存
  5. jsp:和属性相关的方法,请求的转发,重定向
  6. git相关网页
  7. DefWndProc/WndProc/IMessageFilter的区别
  8. hdu 5441 Travel 离线带权并查集
  9. Fragment的数据传递
  10. C# 通过hessian调Java注意事项
  11. Linux配置文件注释注意:行首注释,不要行中注释
  12. MySQL如何选择合适的引擎以及引擎的转换。
  13. Python类的__getitem__和__setitem__特殊方法
  14. Git详细教程(1)---个人Git的基本使用
  15. synchronized和volatile比较
  16. idea的mybatis的mysql语句的小数转换百分号
  17. sql两表连接
  18. mysql ibdata1
  19. LOJ#2444. 「NOI2011」阿狸的打字机
  20. malloc的使用、用malloc动态分配内存以适应用户的需求的源代码实例

热门文章

  1. mapreduce代码实现入门
  2. WPF之DataGrid篇:DataGridComboBoxColumn
  3. C++复习:位运算
  4. 安装Redis 非结构化数据库
  5. Android 红色小圆球提示气泡 BadgeView
  6. 动态内存分配(Dynamic memory allocation)
  7. TP框架部分--文件目录及作用
  8. Angular入门(二) 服务
  9. 关于js全局变量数组push数据时dom中无数据的问题
  10. varnish代理缓存服务器的安装与使用