uestc 1367#先暴力水一个再说
来源:互联网 发布:网络闹钟在线 编辑:程序博客网 时间:2024/04/30 10:33
给定n*m的0,1矩阵,有p次询问,问全部由0构成的a*b大小的子矩阵有多少个. n和m<1000
说是求0的子矩阵,程序实现改为-1的
求和
sum[i][j] 表示矩阵[1-i ][ 1-j ]
O(n^2)暴力枚举每个子矩阵
#include <stdio.h>#include <string.h>#define N 1024int mat[N][N],sum[N][N];int main(){ int m,n,p,q,i,j,ii,jj,t,cas = 0; scanf("%d",&t); while(t--) { scanf("%d%d%d%d",&m,&n,&p,&q); memset(mat,-1,sizeof(mat)); memset(sum,0,sizeof(sum)); int x,y; while(p--) { scanf("%d%d",&x,&y); mat[x][y] = 0; } printf("Case #%d:\n",++cas); for(i = 1; i <= m; ++i) for(j = 1; j <= n; ++j) sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1] + mat[i][j]; while(q--) { scanf("%d%d",&x,&y); int tmp = x * y; int res = 0; for(i = 1; i <= m; ++i) for(j = 1; j <= n; ++j) { if(i >= x && j >= y && sum[i][j] - sum[i][j - y] - sum[i - x][j] + sum[i - x][j - y] == -tmp) ++res; if(i >= y && j >= x && sum[i][j] - sum[i - y][j] - sum[i][j - x] + sum[i - y][j - x] == -tmp) ++res; } if(x == y) res /= 2; printf("%d\n",res); } } return 0;}
- uestc 1367#先暴力水一个再说
- 先抄一个出来再说
- n年没有上来啦,先转一个贴子再说
- 先看完客户端再说
- 先开通博客再说
- 噢,等等,先想想再说
- 多线程编程 - 先入门再说
- 先实践起来再说别的
- UESTC 1262 Memory 暴力法
- UESTC 1262 Memory (暴力)
- 第一贴,先打倒一下岳不群再说!!!
- 多线程编程(1) - 先入门再说
- 多线程编程(1) - 先入门再说
- 腾讯电商:先做好减法再说
- 多线程编程(1) - 先入门再说
- 观点:深度学习,先跟上再说
- 观点:深度学习,先跟上再说
- 先发一个先
- 内存异常系列之单例模式导致内存泄露
- 关于C/C++左值的一些问题
- MYSQL查询重复记录的方法
- vi编辑器命令详解
- Android,谁动了我的内存
- uestc 1367#先暴力水一个再说
- TFS 简介
- 论记忆化搜索
- GPEModeEx FUNCTION
- Integer Intervals (P1716)
- 一个Android异步调用的简单框架
- HDU 1213 How Many Tables
- XFire——WebService XFire实现
- Android 内存管理