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