链接

https://nanti.jisuanke.com/t/A1676

题解

每种分开算,比如我先考虑出 s c i s s o r s scissors scissors,把模式串中的所有 S S S处置为 1 1 1,其它位置置为 0 0 0;原串中的能被 S S S干掉的都设为 1 1 1,其余设为 0 0 0
然后多项式卷积

代码

#include <bits/stdc++.h>
#define mod 1004535809ll
#define maxn (2097152+10)
#define cl(x)memset(x,0,sizeof(x))
using namespace std;
typedef long long ll;
struct EasyMath
{ll fastpow(ll a, ll b, ll c){ll t(a%c), ans(1ll);for(;b;b>>=1,t=t*t%c)if(b&1)ans=ans*t%c;return ans;}
}em;
struct NTT
{ll up, R[maxn];void init(ll bound)    //bound是积多项式的最高次幂{ll L(0);for(up=1;up<=bound;up<<=1,L++);for(ll i=0;i<up;i++)R[i]=(R[i>>1]>>1)|((i&1)<<(L-1));}void ntt(ll* a, int opt){ll i, j, k, wn, w, x, y, inv(em.fastpow(up,mod-2,mod));for(i=0;i<up;i++)if(i>R[i])swap(a[i],a[R[i]]);for(i=1;i<up;i<<=1){if(opt==1)wn=em.fastpow(3,(mod-1)/(i<<1),mod);else wn=em.fastpow(3,(mod-1-(mod-1)/(i<<1)),mod);for(j=0;j<up;j+=i<<1)for(w=1,k=0;k<i;k++,w=w*wn%mod){x=a[k+j], y=a[k+j+i]*w%mod;a[k+j]=(x+y)%mod, a[k+j+i]=(x-y+mod)%mod;}}if(opt==-1)for(i=0;i<up;i++)(a[i]*=inv)%=mod;}void juan(ll* a, ll* b, ll* c){ntt(a,1), ntt(b,1);for(int i=0;i<up;i++)c[i]=a[i]*b[i];ntt(c,-1);}
}ntt;
ll read(ll x=0)
{ll c, f(1);for(c=getchar();!isdigit(c);c=getchar())if(c=='-')f=-f;for(;isdigit(c);c=getchar())x=x*10+c-48;return f*x;
}
char s[maxn], t[maxn];
ll ans[maxn], a[maxn], b[maxn], c[maxn];
int main()
{char table[200];ll i, n, m, d, x;scanf("%s%s",s,t);n=strlen(s), m=strlen(t);table['S']=0, table['P']=1, table['R']=2, table['L']=3, table['K']=4;for(i=0;i<n;i++)s[i]=table[s[i]];for(i=0;i<m;i++)t[i]=table[t[i]];ntt.init(n+m);for(x=0;x<5;x++){cl(a), cl(b), cl(c);for(i=0;i<n;i++)a[i]=(s[i]==(x+1)%5 or s[i]==(x+3)%5);for(i=0;i<m;i++)b[i]=(t[i]==x);reverse(b,b+m);ntt.juan(a,b,c);for(i=0;i+m-1<n;i++)ans[i]+=c[m-1+i];}ll mx=0;for(i=0;i+m-1<n;i++)mx=max(ans[i],mx);cout<<mx;return 0;
}

计蒜客A1676 Rock Paper Scissors Lizard Spock相关推荐

  1. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)...

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  2. 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FFT)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FF ...

  3. 计蒜客 挑战难题 爬楼梯

    计蒜客 挑战难题 爬楼梯 假设你现在正在爬楼梯,楼梯有n级.每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部? 格式: 第一行输入一个数n(n<=50),代表楼梯的级数. 接下来一行输 ...

  4. Python编程基础:第三十七节 石头剪刀布游戏Rock, Paper, Scissors Game

    第三十七节 石头剪刀布游戏Rock, Paper, Scissors Game 前言 实践 前言 我们这一节的内容主要是对前边学习内容的一个综合应用,以石头,剪刀,布游戏为例讲解列表.随机数.用户输入 ...

  5. 无脑博士的试管们java_计蒜客 无脑博士和他的试管们

    标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...

  6. 最短路(遍历边)计蒜客—DD坐地铁

    题目: C 城有 n 个站点, m 条双向地铁,每条地铁有一个 companyicompany_icompanyi​表示它的公司,如果连续乘坐同一家公司的地铁只要花 1元钱就好.DD现在想出门找萨摩耶 ...

  7. K - Triangle 计蒜客 - 42405

    K - Triangle 计蒜客 - 42405 题意: 给你一个三角形的三点,再给你三角形边上一个点,让你求另一个点(也要在三角形上),使得平分三角形的面积 题解: 计算几何 三角形的三边ab,ac ...

  8. H - Prince and Princess 计蒜客 - 42402

    H - Prince and Princess 计蒜客 - 42402 题意: 你现在要寻找公主,有三种人,第一种是说真话的人(至少为1,因为公主是说真话的人),第二种人是只会说假话的,第三种是胡说八 ...

  9. C - Digital Path 计蒜客 - 42397 05-29

    C - Digital Path 计蒜客 - 42397 题意: 题意就是给出一个n ∗ m的数字矩阵每个矩阵元素之间只能上下左右走,而且下一个位置必须比当前位置的数字大1,入口和出口必须数边缘元素, ...

最新文章

  1. 中国大陆光伏中上游触底反弹 台湾省亦酝酿涨势
  2. 按键处理技巧(状态机)
  3. Centos下重要日志文件及查看方式
  4. 介绍了Oracle数据库锁的种类及研究
  5. python中socket模块常用吗_python网络学习笔记——socket模块使用记录
  6. vbs 连oracle 负载均衡,(原)QTP中用VBS调用PLSQL并执行相关语句
  7. hessian学习笔记
  8. 25 万行逆向源码遭下架!
  9. 精通innodb引擎_《MySQL技术内幕:InnoDB存储引擎》PDF 下载
  10. 史上最全的android学习资料
  11. 产品读书《社群经济:移动互联网时代未来商业驱动力》
  12. 男士不得不看的21种经典拍照姿势
  13. 常见的系统架构风格有哪些?各有什么优缺点?
  14. arch nvidia驱动安装记录
  15. WebGL、ThreeJS、BabylonJS、SceneJS和Cesium框架对比及简介
  16. parted 4T磁盘
  17. boonton 功率测试软件,教你使用功率计及功率分析仪测试
  18. Smith数问题C++代码实现
  19. linux的shell命令的工作方式,工作中给力的shell命令
  20. 图像处理的一些基础知识

热门文章

  1. 名帖243 唐寅 行书《题跋达摩六代祖师图》
  2. 40k~65k, 区块链架构师技能包一览: 多语言、多平台、多算法...别慌, 先投简历再说...
  3. 曙光服务器装系统配置,曙光作业管理-调度系统安装配置手册
  4. [siggraph19]《荒野大镖客2》的大气云雾技术(3/4)
  5. Ansys-静力学分析-圆轴扭转的学习体会
  6. 2016 国庆,不庆
  7. R语言【Shapiro-Wilk 检验、chisq.test() 函数、ks.test() 函数】
  8. threejs 笔记整理
  9. web前端入职配置_我如何从全职妈妈变成前端Web开发人员
  10. 电商扣减库存_电商库存体系设计