2019.01.19-2018年6月NEYC集训sequence

题目描述:

茉优最近研究发现,一个人的想愿能力可以认为是字符串S的一个子串S[l,r],而连接值可以认为是这个子串的本质不同子序列个数。现在她想验证她的结论是否正确,于是她给了你Q个询问,希望你帮她来计算,注意空串也是子序列。

因为茉优已经有一个答案了,所以你只要输出ZQ的值检验即可。

思路:

考虑对于取以字符i为结尾的转移矩阵,是除了单位矩阵外,第一列为都为1,恰好表示除了以i为结尾的情况其他情况都*2.

于是构建出每个字母的转移矩阵,是一个53*53的矩阵,叫它C[i]。

对于每一个询问,答案其实是前Ar个矩阵的乘积,乘上前Al-1个矩阵的逆。

但是由于矩阵不满足交换律,所以我们呢要做这样的预处理。

Ar=Ar-1*Cs[a[r]]

B表示逆矩阵。

Bl=Cs[a[l]]*Bl-1

Ans=一个1*m的矩阵(只有第一位为0)*Bl*Ar

仔细分析可以发现关于B矩阵我们只需要知道第一行每一位数的数值,

A矩阵我们只需要知道每一列的和。

并且由于每个字母转移矩阵的特殊性,计算过程中结果通常只和一行或一列相关,于是每次维护或一列即可,转移时O(53)

总效率就是O(n*53).

以下代码:

#include<bits/stdc++.h>
#define il inline
#define _(d) while(d(isdigit(ch=getchar())))
using namespace std;
const int N=1e6+5,p=998244353;
char s[N];
int Q,a0,b0,B,q,R,n,tag[55],ans;
struct node{
    int l[55];
}a[N],b[N],c[55];
il int read(){
    int x,f=1;char ch;
    _(!)ch==‘-‘?f=-1:f;x=ch^48;
    _()x=(x<<1)+(x<<3)+(ch^48);
    return f*x;
}
il int C(char a){
    if(a<=‘Z‘)return a-‘A‘+1;
    return a-‘a‘+27;
}
il int mu(int x,int y){
    if(x+y>=p)return x+y-p;
    return x+y;
}
int main()
{
    scanf(" %s",s+1);n=strlen(s+1);
    for(int i=0;i<53;i++)c[i].l[i]=a[0].l[i]=1;
    for(int i=1;i<=n;i++){
        int k=C(s[i]);
        for(int tmp,j=0;j<53;j++){
            tmp=c[j].l[k];c[j].l[k]=a[i-1].l[j];
            a[i].l[j]=mu(mu(a[i-1].l[j],a[i-1].l[j]),p-tmp);
        }
    }
    for(int i=0;i<53;i++){
        for(int j=0;j<53;j++){
            c[i].l[j]=0;
        }
        c[i].l[i]=1;
    }
    b[0].l[0]=1;
    for(int i=1;i<=n;i++){
        int k=C(s[i]);
        for(int tmp,j=0;j<53;j++){
            tmp=mu(c[k].l[j],p-tag[j]);c[k].l[j]=mu(c[k].l[j],tmp);
            tag[j]=mu(tag[j],tmp);b[i].l[j]=mu(c[0].l[j],p-tag[j]);
        }
    }
    Q=read();a0=read();b0=read();B=read();q=read();R=read();
    while(Q--){
        int a1,b1,l,r;
        a1=mu(mu(1ll*B*a0%p,1ll*q*b0%p),mu(ans,R));
        b1=mu(mu(1ll*B*b0%p,1ll*q*a0%p),mu(ans,R));
        a0=a1;b0=b1;l=a0%n+1;r=b0%n+1;
        if(l>r)swap(l,r);
        ans=0;
        for(int i=0;i<53;i++){
            ans=mu(ans,1ll*a[r].l[i]*b[l-1].l[i]%p);
        }
    }
    printf("%d\n",ans);
    return 0;
}

原文地址:https://www.cnblogs.com/Jessie-/p/10291652.html

时间: 2024-08-28 05:15:05

2019.01.19-2018年6月NEYC集训sequence的相关文章

现代软件工程团队项目贝塔阶段_开发日志_2018.01.15-2018.01.19

现代软件工程团队项目贝塔阶段_开发日志_2018.01.15-2018.01.19 2018.01.15 已完成: 1.版本上线 1.1上线操作步骤 1.1.1将网站整体文件夹拷贝到keqi1 1.1.2修改microDefinition.php的数据库名和根目录名 1.1.3修改注册界面发送验证码后直接填充功能 1.1.4修改del的主id的class为hide 1.1.5重新运行根目录的111.php(消除红点,也就是消除服务器返回的多余字符) 1.2修复上线过程中遇到的bug  1.2.1

【谜客帝国】第145届芭比娃娃主擂谜会(2019.01.15)

[谜客帝国]第145届芭比娃娃主擂谜会(2019.01.15) 主持:瓷   计分:默沫 1. 同心十八载,白首居河东(2字2019亚洲杯中国球员)石柯 2. 王朗气极坠地死(3字方位字)骂下马 [注:典据<三国演义>93回,“王朗听罢,气满胸膛,大叫一声,撞死于马下.”] 3. 城头长弓搭白羽(2字宋词人)张翥 4. 重门折屐未曾进(成语)格格不入 [注:重门.折屐,皆为谜格.] 5.“石城古岸头”(2字国家森林公园)圭山 6. 凯撒大帝显露出愤怒(4字<诗经>名句)七月流火 [

2018年5月第一二周下载中心资源下载TOP榜

2018年5月01日至2018年5月14日下载中心资源下载TOP榜 A.系统运维 NO.1下载数:282资源标题:Linux操作系统(上百个新特性)_红帽RHEL7新特性与功能汇总V1.0资源地址:http://down.51cto.com/data/2446518 NO.2下载数:121资源标题:Windows Server 2016 中的工作组和多域故障转移群集资源地址:http://down.51cto.com/data/2446798 NO.3下载数:78资源标题:文员.网管必会技能:W

2018年10月小结(流水账) -- 1024程序员节快乐

2018年10月小结-- 1024程序员节快乐 今天刚好是1024程序员节.最近两个月没有更新博客,主要是最近有点迷茫,好像对技术丧失了热情,好像提不起兴趣.加上一些事情,感觉好累,好困,好迷茫.每当夜深人静的时候,有时会留下不知为什么的眼泪. 这两个月主要做基于公众号的WiFi故事机.原理很简单的,就是微信用户绑定一台故事机设备,然后公众号通过WebSocket发送命令到设备.实现微信互聊,故事点播,设备控制等简单功能.这个项目没什么技术含量的,至于卖的好不好暂时还不清楚. 就是这样一个一个小

2018年12月,华为HCNP大面积更新题目,军哥独家解题咯

2018年12月,华为HCNP大面积更新题目,乾颐堂军哥独家解题咯2018年是华为认证变动比较大的一年,华为认证走过这几年不得不说是有一定进步的,而且最近华为孟女侠确实让我也小小的骄傲了一把,所以当然希望华为认证能做的更好,更专业一点(我平时没少吐槽华为的认证).回顾2018年华为认证做出的改变,有这么几件大事:1.多个方向终于开始比较正式的升级大纲了.我来帮大家讲一讲历史,依稀记得2014年那其实是我第一次意识到华为开始做网络方面的职业认证(当然人家开始做认证要更早一丢丢),当时我已经有思科的

物联大世界 2019年国际物联网展会5月在北京盛大召开

时间2019年05月16-18日 地点 中国?北京亦创国际会展中心4组织单位 特邀单位:××× ×××商务部批准单位:北京市商务委员会主办单位:中国电子商会物联网技术产品应用专业委员会北京铭世博国际展览有限公司 支持单位:××× ×××中国智能家居产业联盟 中华物联网联盟国家信息化专家咨询委员会 中国物联网产业协会 承办单位:北京铭世博国际展览有限公司 展会回顾由北京市商务委员会批准,中国电子商会.物联网技术产品应用专业委员会主办.北京铭世博国际展览有限公司承办的中国首个以"物联网"为

人们喜欢传播符合自己三观的新闻,不在乎真假:4星|《环球科学》2018年12月号

<环球科学>2018年12月号 有趣.可信的科普杂志.本期有趣的话题:1:最近,科学家可能已经成功制造出“薛定谔的细菌”:2:雾霾中的颗粒物(PM)浓度的增高会显著增加儿童患上自闭症的风险:3:如果你毕业后就不再学习会怎么样?这么做可能会让你变得落伍,但这正是大部分机器学习系统被训练的方式:4:也许在不久的未来,在睡梦中学习也会变成现实:5:在不同的群体内部,新闻的传播性并不取决于新闻本身的真实性,而取决于新闻与群体世界观的契合度. 总体评价4星,非常好. 以下是书中一些内容的摘抄,#号后面是

【谜客帝国】第146届千江雪主擂谜会(2019.01.30)

 [谜客帝国]第146届千江雪主擂谜会(2019.01.30) 主持:瓷   计分:雪宝 1. 几回驻马观潮起(对人评价语)没主见 2. “他年我若为青帝”(商品连价位2+2)花生一块 [注:面出黄巢<题菊花>,启下句 “报与桃花一处开”] 3. 看我横戈行天下(东北方言)大手 4. 寒梅凋谢扑满衣(对<红楼梦>人物态度)冷落花袭人 5. 挥手拢琴动凡心(诛仙小说人物)玲珑 6. “纵使相逢应不识”(3字猜不出谜原因)面太生 [面出苏轼<江城子 记梦>] 7. 松间小月

2017-02-08 01:19:09 Scrapy: pk5_mylist

[TOC] ###2017-02-08 01:19:09 Scrapy: pk5_mylist.md > Save the records with MongoDB #### settings.py ``` # -*- coding: utf-8 -*- BOT_NAME = 'bengbeng' SPIDER_MODULES = ['bengbeng.spiders'] NEWSPIDER_MODULE = 'bengbeng.spiders' ROBOTSTXT_OBEY = True IT