hdu 2243 AC自动机+dp(矩阵快速幂优化)

为什么你的SiC MOSFET仿真不准?可能是离子注入的‘沟道效应’在捣鬼(Silvaco BCA模块详解) 本文深入分析了SiC MOSFET仿真中离子注入沟道效应的关键影响,揭示了Silvaco BCA模块在模拟SiC晶向和角度参数时的核心设置要点。通过详细解析晶圆偏切与注入角度的等效关系,提供优化MOSFET沟道区注入仿真的五步实战方法,帮助工程师将阈值电压仿真误差从26%降低到5%以内。 阅读详情

做这个之前建议做一下poj 2778
这道题要求长度小于等于m的字符串包含所给串的有多少种,可以算出所有的情况然后减去不包含所给串的情况就是所求的。
大佬博客
大佬博客
矩阵里面存的是从i节点到j节点走一步共有多少种走法(不能走题目上给的字符串)。
然后将这个矩阵m次幂就可以求出走m步(长度为m的字符串)有多少种不包含做给串的字符串。小于等于m将其各个次幂加起来就好了,可以改一改矩阵一次就可以算出来。
所有情况就是26的1到m次幂加起来。

#include<cstdio>
#include<queue>
#include<cstring>
#include<iostream>
#include<algorithm>
#define LL unsigned long long
using namespace std;
const int maxn=1e6+10;
struct zp
{
    LL arr[110][110];//代表从i节点走一步到j节点有多少种走法
} x;
int zlen;
zp jx(zp a,zp b)
{
    zp res;
    for(int i=0; i<zlen; i++)
        for(int j=0; j<zlen; j++)
            res.arr[i][j]=0;
    for(int i=0; i<zlen; i++)
        for(int j=0; j<zlen; j++)
            for(int k=0; k<zlen; k++)
                res.arr[i][j]=res.arr[i][j]+a.arr[i][k]*b.arr[k][j];
    return res;
}
zp jk(zp a,int b)
{
    zp res;
    for(int i=0; i<zlen; i++)
        for(int j=0; j<zlen; j++)
            res.arr[i][j]=(i==j);
    while(b)
    {
        if(b&1)
            res=jx(res,a);
        a=jx(a,a);
        b>>=1;
    }
    return res;
}
struct AC
{
    int node[maxn][26];
    int fail[maxn],cont,root,flag[maxn];
    int newnode()
    {
        for(int i=0; i<26; i++)
            node[cont][i]=-1;
        flag[cont++]=0;
        return cont-1;
    }
    void init()
    {
        cont=0;
        root=newnode();
    }
    void build(char a[])
    {
        int len=strlen(a);
        int now=root;
        for(int i=0; i<len; i++)
        {
            if(node[now][a[i]-'a']==-1)
                node[now][a[i]-'a']=newnode();
            now=node[now][a[i]-'a'];
        }
        flag[now]=1;
    }
    void get_fail()
    {
        queue<int> q;
        fail[root]=root;
        for(int i=0; i<26; i++)
        {
            if(node[root][i]==-1)
            {
                node[root][i]=root;
            }
            else
            {
                fail[node[root][i]]=root;
                q.push(node[root][i]);
            }
        }
        while(!q.empty())
        {
            int now=q.front();
            q.pop();
            for(int i=0; i<26; i++)
            {
                if(node[now][i]==-1)
                {
                    node[now][i]=node[fail[now]][i];
                    if(flag[fail[node[now][i]]]==1)//当当前节点的fail指向一个单词结尾时这个单词也是不可到达的
                        flag[node[now][i]]=1;
                }
                else
                {
                    fail[node[now][i]]=node[fail[now]][i];
                    q.push(node[now][i]);
                    if(flag[fail[node[now][i]]]==1)
                        flag[node[now][i]]=1;
                }
            }
        }
    }
    void buildMatrix()
    {
        memset(x.arr,0,sizeof(x.arr));
        for(int i=0; i<cont; i++)
            for(int j=0; j<26; j++)
                if(flag[node[i][j]]!=1&&flag[fail[node[i][j]]]!=1)
                    x.arr[i][node[i][j]]++;//这里加加是因为从同一个节点出发走一步可能有好几种走法
                    for(int i=0;i<cont+1;i++)//要求矩阵x的一到m次幂所以要在后面加一列
                        x.arr[i][cont]=1;
    }
};
AC ac;
char s[2010];
int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        ac.init();
        for(int i=0; i<n; i++)
        {
            scanf("%s",s);
            ac.build(s);
        }
        ac.get_fail();
        ac.buildMatrix();
        zlen=ac.cont+1;
        x=jk(x,m);
        LL ans=0;
        for(int i=0;i<zlen;i++)
            ans+=x.arr[0][i];
        x.arr[0][0]=26,x.arr[0][1]=1;//矩阵求26^1+26^2......26
        x.arr[1][0]=0,x.arr[1][1]=1;
        zlen=2;
        x=jk(x,m);
        ans=x.arr[0][0]+x.arr[0][1]-ans;
        printf("%llu\n",ans);
    }
}
相机图像质量评估标准全解析:MTF、CA、SNR 与色彩偏差的实战理解 图像质量评估是影像系统开发中的核心环节,它直接影响用户视觉体验与终端产品竞争力。本文基于真实的图像调试工程实践,系统讲解主流图像评价指标,包括调制传递函数(MTF)、色差(CA)、信噪比(SNR)与色彩偏差(DeltaE)等关键标准。结合 Imatest 测试流程与实际样张数据,逐项拆解各项指标在实际图像分析中的意义与优化路径,帮助开发者建立完整、量化、工程化的图像质量评估体系。 阅读详情

相关推荐

百度无人车ApolloAuto使用入门

1.安装原版ubuntu 14.04 http://www.ubuntu.org.cn/download/alternative-downloads 2.安装对应ubuntu 14.04的indigo版ROS http://wiki.ros.org/indigo/Installation/Ubuntu 3.安装Apollo Kernel https://github.co

ss910的博客 3万+

hdu2243考研路茫茫——单词情结 【AC自动机+动态规划+矩阵快速幂】

这道题就是bzoj1030的翻版,那道题题解见这里。还是用总方案数减去一个单词都不包含的方案数,只不过节点很少,不到30个,就可以用矩阵快速幂优化。 不过注意要求的是长度小于L的,所以矩阵多开一维记录前缀和,总方案数也变成了260+261+262+……+26L" role="presentation" style="position: relative;">260+2

cdsszjj的博客 358

手把手教你用内核远程call实现64位进程注入(附完整ShellCode示例)

本文深入探讨了在Windows 64位环境下,通过内核态直接操作线程TrapFrame结构实现进程注入的高级技术。文章提供了从驱动框架设计、用户态-内核态通信,到定位修改TrapFrame、编写Shellcode及执行环境恢复的完整实战指南,并附有详细的代码示例,为安全研究人员和开发者提供了绕过用户态检测、实现底层远程代码执行的新思路。

weixin_28396629的博客 342

HDU 2243(AC自动机+矩阵快速幂)

传送门 题面: 背单词,始终是复习英语的重要环节。在荒废了3年大学生涯后,Lele也终于要开始背单词了。  一天,Lele在某本单词书上看到了一个根据词根来背单词的方法。比如"ab",放在单词前一般表示"相反,变坏,离去"等。  于是Lele想,如果背了N个词根,那这些词根到底会不会在单词里出现呢。更确切的描述是:长度不超过L,只由小写字母组成的,至少包含一个词根的单词,一共可能有多少个呢?这...

Chen.Jr的博客 452

【vue看板】

大屏看板提示:以下是本篇文章正文内容,下面案例可供参考提示:这里对文章进行总结:代码量较多,看板中的。

weixin_46223284的博客 2771

实战复盘:如何用Frida脚本绕过某书APP的libmsaoaidsec.so检测(附完整Hook代码)

本文深入探讨了如何利用Frida脚本绕过某书APP通过libmsaoaidsec.so实现的反Frida检测机制。通过分析动态链接过程中的关键节点和检测模式,提供了两种实战验证的绕过方案:动态Hook关键链接器函数和静态Patch SO文件。文章还分享了进阶对抗策略和调试技巧,帮助安全研究人员有效应对现代移动安全防护挑战。

weixin_42706667的博客 215

hdu 2243 AC自动机+矩阵快速幂

考研路茫茫——单词情结 题意:这题和poj2778没有本质区别,都是通过AC自动机得到递推矩阵,然后矩阵快速幂。递推的状态都是长度和单词结尾在trie树上的位置(最长公共字串,trie上是前缀,在递推的单词上则是后缀)。但这题会多些线性代数的技巧,例如求26^1+……+26^n要用二阶矩阵,还要用长度恰好为l的矩阵去构造长度小于等于l的递推矩阵。 #include #include #

qwe20060514的专栏 671

团结引擎+OpenHarmony 记录 (持续更新中)

获取不到的原因是因为二者不在同一个线程中,所以数据没有同步。而 globalThis.context 数据进行了同步。(TuanjieMainWorkerHandler.ts中可以看到)在进行绘制 UI 的时候 ,如果组件有 Native API 就可能不会显示出来,例如 web 控件就不能展示出来,刚加上权限的时候 会报错 因为缺少 reason ,添加上就不会报错了。只有纯 UI 控件是可以展示出来的,注释掉 web控件后就可以。

m_cainiaokuaifei的博客 1490

HDU-2243 考研路茫茫——单词情结(AC自动机 + 矩阵快速幂)

题目描述 背单词,始终是复习英语的重要环节。在荒废了3年大学生涯后,Lele也终于要开始背单词了。 一天,Lele在某本单词书上看到了一个根据词根来背单词的方法。比如"ab",放在单词前一般表示"相反,变坏,离去"等。 于是Lele想,如果背了N个词根,那这些词根到底会不会在单词里出现呢。更确切的描述是:长度不超过L,只由小写字母组成的,至少包含一个词根的单词,一共可能有多少个呢?这里就不考虑单词...

Irimsky 289

强化学习赋能宇树机器狗:Isaac Gym与MuJoCo仿真训练全解析

本文详细解析了如何利用Isaac Gym和MuJoCo两大仿真平台为宇树机器狗构建强化学习训练管道。内容涵盖环境配置、模型导入、PPO算法框架设计、奖励函数构建以及从仿真到实机的策略迁移技巧,为开发者提供了一套完整的宇树狗仿真训练实践方案。

zeta9的博客 619

OpenCV13-图像噪声:椒盐噪声和高斯噪声

考虑到椒盐噪声会在图像中的任何一个位置随机产生,因此对于椒盐噪声的生成,需要使用OpenCV中能够产生随机数的函数。OpenCV中也没有专门为图像添加高斯噪声的函数,对早在图像中添加椒盐噪声的过程,可以根据需求利用能够产生随机数的函数来完成在图像中添加高斯噪声的任务。椒盐噪声又称作脉冲噪声,他会随机改变图像中的像素值,其样子就像是在图像上随机地撒上一些盐粒和黑椒粒,因此被称为椒盐噪声。函数能够产生均匀分布或者高斯分布的随机数,可以利用该函数产生符合高斯分布的随机数,之后在图像中加入这些随机数即可。

SHLYYY 5121

AC自动机 进阶练习 (结合算法:矩阵快速幂/DP/高精度)

POJ 2778 DNA Sequence #include <iostream> #include <cstdio> #include <queue> #include <cstring> using namespace std; typedef long long ll; const int N=105,M=4,K=12,mod=1e5; int to_int(char c) // A,T,C,G -> 0,1,2,3 { if(c=='A'

nefu_ljw的博客 632

Ollama系列---【ollama使用gpu运行大模型】

一、安装CudaToolkit 使用控制台命令查看当前显卡驱动中的cuda版本 nvidia-smi 二、下载CudaToolkit 注意:CudaToolkit版本要低于上面的显卡Cuda版本。 Cuda各版本下载地址:https://developer.nvidia.com/cuda-toolkit-archive 下载好之后,一路下一步,一直默认即可。 如果安装到了自定义的位置,记得加环...

-少年-的博客 7982

HDU 2243 考研路茫茫——单词情结 AC自动机+DP+快速幂

与此题类似 http://blog.youkuaiyun.com/viphong/article/details/53039419 dp递推一样 在它的基础上多了一步求前缀和 solution是加多一维累计即可 最后求一个26+26^2 + 26^3 + 26^4 ...的一个快速幂相减就算是答案 对2^64取模就是 ull即可 printf+ull

缺氧 384

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

hdu 2243 (AC自动机 + dp + 矩阵快速幂)

略恶心人的东东 /* * ===================================================================================== * * Filename: 2243.cpp * Version: 1.0 * Created: 2013-08-25 21:28:30 *

__夜 950

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

hdu 2243 ac自动机 dp +矩阵快速幂

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2243

kdh的专栏 755

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

AC自动机

感觉讲的比较清楚的一个== http://www.cppblog.com/menjitianya/archive/2014/07/10/207604.html

yusiningxin的博客 287

【MZ】hdu 2243 AC自动机 + 矩阵加速

problem: 给你 n 个病毒,问长度为 [1, m] 的,包括病毒的有多少。全都是小写字母。 think: 和 poj 2778 有点像。不一样的是: 1)  这个是求包括的,我这么做的,加一维用来表示已经包括了病毒的状态。 2)  求长度是 [1, m] 的。在矩阵里面维度变成二倍。 [A 1] [1 0] 左下面的 1 就是最后所求。A是矩阵的话,就把 1 变成 I

向往纳木错的程序猿生活 2142

防爆机器人误报真相:EMC不达标才是产线不稳的病根

防爆机器人在工业自动化系统中承担高危环境下的执行任务,其可靠性不仅取决于防爆认证(如GB3836),更依赖电磁兼容性(EMC)设计。EMC本质是设备在复杂电磁环境中抗干扰与不干扰他人的能力,涉及电快速瞬变、浪涌、射频辐射等关键抗扰度指标。当前大量防爆机器人仅通过GB3836静态能量安全验证,却缺失GB/T 17626系列对过程控制系统的严苛EMC测试,导致与DCS、SIS系统共存时频发误报警、信号跳变、联锁误动等‘软故障’。这类问题并非随机偶发,而是源于动力电缆共模电流、屏蔽失效、接地阻抗过高、滤波缺失等可

weixin_33850015的博客 333

hdu 2243 AC自动机 + 矩阵加速

problem: 给你 n 个病毒,问长度为 [1, m] 的,包括病毒的有多少。全都是小写字母。 think: 和 poj 2778 有点像。不一样的是: 1)  这个是求包括的,我这么做的,加一维用来表示已经包括了病毒的状态。 2)  求长度是 [1, m] 的。在矩阵里面维度变成二倍。 [A 1] [1 0] 左下面的 1 就是最后所求。A是

387

C/C++结构体排序实战:sort与qsort原理、比较函数与避坑指南

排序是编程中最基础也最常用的操作之一,当数据结构复杂到需要自定义结构体时,如何高效、正确地按指定字段排序,成为开发者绕不开的课题。无论是C++标准库的sort,还是C语言提供的qsort,其核心都在于为算法提供明确的“比较规则”——即比较函数。理解比较函数的返回值语义、参数类型以及严格弱序原则,才能真正驾驭排序。这些技术广泛应用于学生信息管理、日志分析、IP地址排序、大数据量记录处理等场景。在实际工程中,结构体内存对齐、字符串字段比较、多字段组合排序、指针数组优化、排序稳定性等问题往往比算法本身更隐蔽。本文

weixin_33947521的博客 303

HDU 2243 考研路茫茫——单词情结

此题其实为综合算法,AC自动机DP+矩阵二分快速求幂。由于要求的是“至少”包含一个的情况,每次碰到这种词就必然要联想到反面,也就是一个都不包含的情况。因为是对2的64次方取模,其实直接用unsigned long long类型即可,其结果就是直接对2^64取模,而且为正,输出用%

1140

HDU 2243 考研路茫茫――单词情结

ACzid #include #include #include #include #include #include using namespace std; #define N 20005 #define INF 1000000009 typedef long long LL; struct Trie { Trie *fail; Trie *next[27]; int

DBL 639

HDU 2243-考研路茫茫——单词情结(AC自动机+矩阵乘法+求补)

考研路茫茫——单词情结 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5791    Accepted Submission(s): 1938 Problem Description 背单词,始终是复习英语的重要环节。在

信仰.的博客 406

NotOnlySuccess 自动机专辑,完全题解 - by ronaflx

hdu 2222模板题,测试专用,测烂为止。 hdu 2896模板题。 hdu 3065水,查询稍微改一下貌似就OK zoj 3430 需要解码……由于是个base64,所以解码需要用unsigned char 而且要算出解码的长度……某此月赛题,表示不会解码看shi个报告。 poj 2778 矩阵乘法,注意以自动机上的节点表示状态,每一个状态对应一个输入都会有下一状态(就是原来query...

weixin_33750452的博客 203
上一篇: 字符串的最大最小表示法
下一篇: 值域线段树
acmer_zp
博客等级 码龄11年 18粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值