题目链接
二维\(Hash\)类似二维前缀和,每一行看成一个\(h\)进制数,每一个以(1,1)为左上角的矩阵看成一个由每一行的\(Hash\)值组成的\(l\)进制数。
然后自己推推柿子就行。

#include <cstdio>
#include <cstring>
#include <map>
using namespace std;
#define Open(s) freopen(s".in","r",stdin); freopen(s".out","w",stdout);
#define h 1331
#define l 2333
int n, m, r, c, T;
map <unsigned long long, int> mp;
unsigned long long hs[1010][1010], ph[1010], pl[1010], xs[1010][1010];
char ch;
int main(){Open("matrix"); ph[0] = pl[0] = 1;scanf("%d%d%d%d", &n, &m, &r, &c);for(int i = 1; i <= n; ++i)for(int j = 1; j <= m; ++j){ch = getchar();while(ch != '0' && ch != '1') ch = getchar();hs[i][j] = hs[i][j - 1] * h + ch;}for(int i = 1; i <= n; ++i)for(int j = 1; j <= m; ++j)hs[i][j] += hs[i - 1][j] * l;for(int i = 1; i <= m; ++i) ph[i] = ph[i - 1] * h;for(int i = 1; i <= n; ++i) pl[i] = pl[i - 1] * l; for(int i = r; i <= n; ++i)for(int j = c; j <= m; ++j)mp[hs[i][j] - hs[i - r][j] * pl[r] - hs[i][j - c] * ph[c] + hs[i - r][j - c] * pl[r] * ph[c]] = 1;scanf("%d", &T);while(T--){for(int i = 1; i <= r; ++i)for(int j = 1; j <= c; ++j)xs[i][j] = 0;for(int i = 1; i <= r; ++i)for(int j = 1; j <= c; ++j){ch = getchar();while(ch != '0' && ch != '1') ch = getchar();xs[i][j] = xs[i][j - 1] * h + ch;}for(int i = 1; i <= r; ++i)for(int j = 1; j <= c; ++j)xs[i][j] += xs[i - 1][j] * l;printf("%d\n", mp[xs[r][c]]);}return 0;
}

转载于:https://www.cnblogs.com/Qihoo360/p/11224239.html

【BZOJ 2351】Matrix(Hash)相关推荐

  1. 【Java基础】面向对象(三)

    [Java基础]面向对象(三) 一.多态 概念 引用类型转换 二.Object类 概述 常用方法 三.抽象类 抽象类与抽象方法的定义 注意事项 四.接口 概述 接口定义 含有抽象方法 含有默认方法和静 ...

  2. 【Codecs系列】HEVC-SCC(五):HM+SCM中IBC编码流程和实现分析

    Date:2022.3.31 文章目录 1.参考 2.函数调用流程 3.关键函数分析 4.SCC编码流程 4.1.PU模式选取过程 4.2.基于hash搜索的IBC模式选取 HEVC-SCC扩展系列文 ...

  3. 【VB.NET】自定义控件(一)属性说明

    [VB.NET]自定义控件(一)属性说明 Bindable 布尔型,为true时表示VS.NET将在数据绑定对话框中显示该控件  Browsable 布尔型,表示该控件是否在设计视图中显示?  Cat ...

  4. 【UOJ#246】套路(动态规划)

    [UOJ#246]套路(动态规划) 题面 UOJ 题解 假如答案的选择的区间长度很小,我们可以做一个暴力\(dp\)计算\(s(l,r)\),即\(s(l,r)=min(s(l+1,r),s(l,r- ...

  5. logisticregression参数_通俗地说逻辑回归【Logistic regression】算法(二)sklearn逻辑回归实战...

    前情提要: 通俗地说逻辑回归[Logistic regression]算法(一) 逻辑回归模型原理介绍 上一篇主要介绍了逻辑回归中,相对理论化的知识,这次主要是对上篇做一点点补充,以及介绍sklear ...

  6. 【Vue2.0】—组件(十一)

    [Vue2.0]-组件(十一) <body><div id="root"><h2>{{name}}</h2><hr>&l ...

  7. 【Vue2.0】—过滤器(七)

    [Vue2.0]-过滤器(七) <body><div id="root"><h2>显示格式化后的时间</h2><!-- 计算属 ...

  8. 敏友的【敏捷个人】有感(6): 我的改变从执行力分享开始

         2010年我对个人管理进行了自己的一些思考,在2011年提出敏捷个人概念,并且在线上.线下进行了多次交流,在一些大会上也做过分享.现在,已经有很 多IT和非IT的敏友们知道并在践行敏捷个人, ...

  9. 【java笔记】线程(5):线程安全问题

    [JAVA笔记]线程(1):多线程的介绍和实现_m0_52043808的博客-CSDN博客 [java笔记]线程(2):多线程的原理_m0_52043808的博客-CSDN博客 [java笔记]线程( ...

最新文章

  1. SQL Server 中 SELECT INTO 和 INSERT INTO SELECT语句的区别
  2. 【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )
  3. Linux下的find的使用方法
  4. 万能的Entry,两个变量的Model/JavaBean再也不用写了!
  5. 牛人的博客(机器学习,图像处理,计算机视觉)
  6. 字体对话框java实验_Java Web安全 || Java基础 sun.misc.Unsafe
  7. JVM内存原理及高级特性
  8. 818. Race Car
  9. Quick BI产品核心功能大图(六)开放集成
  10. 漫步线性代数一——引言
  11. makefile 文件 (​ http://blog.csdn.net/ruglcc/article/details/7814546/ )
  12. 推荐几款git管理工具
  13. 思科ASA防火墙接口区域基本信息
  14. Xshell6及Xftp6的使用
  15. 当鼠标移动到上面时的应用
  16. 一文读懂什么是数字证书
  17. IDEA安装及破解永久版教程————鹏鹏
  18. ssr pac_全新回馈丨购金币三日礼,获取主线SSR羁绊
  19. 全差分运放阻抗匹配计算(四)
  20. 由于轮播图片超宽造成的影响

热门文章

  1. Exchange 2010迁移Exchange 2013(一)共存部署
  2. 表单的重复提交问题解决方案
  3. Android教程之实现动作感应技术
  4. Apache2 之虚拟主机设置指南
  5. AtCoder Beginner Contest 129
  6. C++---拷贝构造函数和赋值构造函数
  7. 剑指offer-旋转数组的最小数字
  8. [HNOI2015]亚瑟王
  9. BZOJ3945 : 无聊的邮递员
  10. VS之设置文件编码格式