首页 > 其他分享 >Matrix Matcher

Matrix Matcher

时间:2023-01-18 23:13:42浏览次数:59  
标签:Matrix int Matcher s1 ull s2

Matrix Matcher

代码

#include <bits/stdc++.h>
using namespace std;
const int M=1005;
using ull=unsigned long long;
const ull P1=131,P2=233;

string s1[M],s2[M];
ull num[M][M],base1[M],base2[M];
void init() {
    base1[0]=base2[0]=1;
    for(int i=1;i<M;i++) {
        base1[i]=base1[i-1]*P1;
        base2[i]=base2[i-1]*P2;
    }
}

void build(int n,int m,string s[]) {
    for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)
        num[i][j]=num[i-1][j]*P1+num[i][j-1]*P2-num[i-1][j-1]*P1*P2+s[i][j];
}

ull get(int x1,int y1,int x2,int y2) {
    return num[x2][y2]-num[x1-1][y2]*base1[x2-x1+1]-num[x2][y1-1]*base2[y2-y1+1]
        +num[x1-1][y1-1]*base1[x2-x1+1]*base2[y2-y1+1];
}

int main() {
    init();
    int TT;cin>>TT;
    while(TT--) {
        int ans=0;
        int n,m;cin>>n>>m;
        for(int i=1;i<=n;i++) {
            cin>>s1[i];
            s1[i]='?'+s1[i];
        }
        int  x,y;cin>>x>>y;
        for(int i=1;i<=x;i++) {
            cin>>s2[i];
            s2[i]='?'+s2[i];
        }
        build(x,y,s2);
        int tmp=num[x][y];
        build(n,m,s1);
        for(int i=1;i+x-1<=n;i++)for(int j=1;j+y-1<=m;j++)
            if(tmp==get(i,j,i+x-1,j+y-1))ans++;
        cout<<ans<<'\n';
    }
    return 0;
}

标签:Matrix,int,Matcher,s1,ull,s2
From: https://www.cnblogs.com/basicecho/p/17060819.html

相关文章

  • 【SLAM与多视图几何】【Fundamental Matrix】F矩阵代数推导详解
    核心图片详解两个视角同时看到了三维空间点中的X在两个视角中分别为二维点x、x'。e'认为是左边相机光心在右边的投影l'可能是对极直线?不过名称不重要重要的是e'和......
  • Opencv 仿射变换(getRotationMatrix2D)
    getRotationMatrix2D()此函数给定一个旋转中心的坐标,旋转角度和缩放因子,返回一个仿射变换矩阵,可以使用Mat接收。imagewatch示意图如上当考虑缩放因子时,计算矩阵如官......
  • Matrix Derivative矩阵求导
    ​​WelcomeToMyBlog​​​学习机器学习算法时总碰见矩阵求导,现学习一波,主要总结下注意:这里只涉及实数的求导,研究通信的人可能接触的往往是负数求导矩阵可以写......
  • 【推荐系统】隐语义模型(LFD)与矩阵分解(Matrix Factorization)
    如果需要完整代码可以关注下方公众号,后台回复“代码”即可获取,阿光期待着您的光临~文章目录​​1.隐语义模型与矩阵分解​​​​2.隐语义模型(LatentFactorModel)​​​​3.......
  • 【论文阅读|浅读】Lemane:Learning Based Proximity Matrix Factorization for Node Emb
    目录​​前言​​​​简介​​​​ABSTRACT​​​​1INTRODUCTION​​​​2RELATEDWORK​​​​3LEMANEFRAMEWORK​​​​3.1TrainableProximityMeasure​​​​3.2......
  • Matrix-Breakout: 2 Morpheus-vulnhub靶场
    环境信息靶机:192.168.124.153攻击机:192.168.124.129打靶过程nmap扫描端口及服务发现开放22,80,81端口访问80端口网站有一个黑客帝国里的角色Trinity,让我们调......
  • 74. Search a 2D Matrix
    按题目的意思是有效率的算法,我放下了我暴力ac的冲动。。别人的思路很好,首先遍历二维数组每行的开头,找到比target小的最大行,然后对哪一行进行二分查找,在写代码时请尤其注意下......
  • dremio FormatMatcher 简单说明
    FormatMatcher核心是对于文件系统进行进行格式匹配,方便查询以及执行引擎了解具体支持的数据格式,进行实际数据的处理每个FormatPlugin都需要包含一个格式化匹配器参考......
  • Matrix of Differences(构造)
    题目链接题目描述:Forasquarematrixofintegersofsize\(n×n\),let'sdefineitsbeautyasfollows:foreachpairofside-adjacentelements\(x\)and\(y\)......
  • Vasya and Magic Matrix
    VasyaandMagicMatrix关键推式子,对式子进行化简。一边计算,一边求前缀和(从终点开始dp,会更加容易操作)代码#include<bits/stdc++.h>usingnamespacestd;#definein......