魔法咒语

魔法咒语

题目描述

Chandra 是一个魔法天才。从一岁时接受火之教会洗礼之后, Chandra 就显示出对火元素无与伦比的亲和力,轻而易举地学会种种晦涩难解的法术。这也多亏 Chandra 有着常人难以企及的语言天赋,让她能轻松流利地说出咒语中那些极其拗口的魔法词汇。直到十四岁,开始学习威力强大的禁咒法术时, Chandra 才遇到了障碍。

根据火之魔法规则,禁咒的构成单位是 NN 个基本词汇。施法时只要凝聚精神力,说出一段用这些词语组成的长度恰好等于 LL 的语言,就能释放威力超乎想象的火法术。过去的魔法师们总结了几种表达起来最连贯的组合方式,方便施法者以最快语速完成法术。但具有魔法和语言双重天才的 Chandra 不满足于这几种流传下来的禁咒,因为她可以毫无困难地说出普通人几乎不可能表达的禁咒语句。然而,在实际施法时, Chandra 发现有些自创禁咒念出后不但没有预期效果,反而会使自己的精神力迅速枯竭,十分难受。这个问题令 Chandra 万分不解。她大量阅读典籍,到处走访魔法学者,并且不顾精神折磨一次又一次尝试新咒语,希望找出问题的答案。很多年过去了,在一次远古遗迹探险中, Chandra 意外闯进了火之神艾利克斯的不知名神殿。根据岩土特征分析,神殿应该有上万年的历史,这是极其罕见的。 Chandra 小心翼翼地四处探索,沿着魔力流动来到一间密室。她看见密室中央悬浮着一本书籍。在魔法保护下书籍状况完好。精通上古语言的 Chandra 读过此书,终于解开了多年的困惑。禁咒法术之所以威力强大,是因为咒语借用了火之神艾利克斯的神力。这本书里记载了艾利克斯生平忌讳的 M 个词语,比如情敌的名字、讨厌的植物等等。

使用禁咒法术时,如果语言中含有任何忌讳词语,就会触怒神力而失效,施法者也一并遭受惩罚。例如,若 ”banana” 是唯一的忌讳词语, “an”、 ”ban”、 ”analysis” 是基本词汇,禁咒长度须是 11, 则“bananalysis” 是无效法术, ”analysisban”、 ”anbanbanban”是两个有效法术。注意:一个基本词汇在禁咒法术中可以出现零次、 一次或多次;只要组成方式不同就认为是不同的禁咒法术,即使书写形式相同。谜题破解, Chandra 心情大好。她决定计算一共有多少种有效的禁咒法术。由于答案可能很大,你只需要输出答案模 1,000,000,007的结果。


Sol

 

把禁咒建AC自动机,预处理每一个基本词汇从每一个点开始跑会跑到哪,会不会碰到禁咒。
然后第一问暴力dp,第二问蒟乘
注意对于一个串,如果他的fail是禁咒,那么他也是非法点
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<string>
#include<queue>
#define maxn 105
#define mod 1000000007
#define ll long long
using namespace std;
int n,N,m,l,tr[maxn][26],fail[maxn],p[maxn],tot,cnt,head[maxn];
int f[maxn][105];
string a[maxn];
char ch[maxn];
struct node{int v,nex,w;
}e[1000005];
void ins(){int len=strlen(ch),k=0;for(int i=0;i<len;i++){if(!tr[k][ch[i]-'a'])tr[k][ch[i]-'a']=++cnt;k=tr[k][ch[i]-'a'];}p[k]=1;
}
void build(){queue<int>q;for(int i=0;i<26;i++)if(tr[0][i])q.push(tr[0][i]);while(!q.empty()){int k=q.front();q.pop();for(int i=0;i<26;i++){if(tr[k][i]){fail[tr[k][i]]=tr[fail[k]][i];p[tr[k][i]]|=p[tr[fail[k]][i]]; q.push(tr[k][i]);}else tr[k][i]=tr[fail[k]][i];}}}
void add(int t1,int t2,int t3){e[++tot].v=t2;e[tot].w=t3;e[tot].nex=head[t1];head[t1]=tot;
}
struct no{ll v[505][505];
}s,A;
no operator *(no a,no b){no c;for(int i=0;i<=N;i++)for(int j=0;j<=N;j++){c.v[i][j]=0;for(int k=0;k<=N;k++){c.v[i][j]=(c.v[i][j]+1LL*a.v[i][k]*b.v[k][j]%mod)%mod;}}return c;
}
int main()
{cin>>n>>m>>l;for(int i=1;i<=n;i++){scanf("%s",ch);a[i]=(string)ch;}for(int i=1;i<=m;i++){scanf("%s",ch);ins();}build();for(int i=0;i<=cnt;i++){for(int j=1;j<=n;j++){int k=i,fl=0;if(p[k])continue;for(int x=0;x<a[j].size();x++){k=tr[k][a[j][x]-'a'];if(p[k]){fl=1;break;}}if(fl)continue;add(i,k,a[j].size());}}if(l<=100){f[0][0]=1;for(int x=0;x<=l;x++){for(int k=0;k<=cnt;k++){for(int i=head[k];i;i=e[i].nex){if(e[i].w+x>l)continue;f[e[i].v][x+e[i].w]=(f[e[i].v][x+e[i].w]+f[k][x])%mod;}}}int ans=0;for(int i=0;i<=cnt;i++)ans=(ans+f[i][l])%mod;cout<<ans<<endl;return 0;}N=cnt+cnt+1;for(int k=0;k<=cnt;k++){s.v[k+cnt+1][k]++;for(int i=head[k];i;i=e[i].nex){int j=e[i].v;if(e[i].w==1)s.v[k][j]++;else s.v[k][j+cnt+1]++;}}for(int i=0;i<=N;i++)A.v[i][i]=1;while(l){if(l&1)A=A*s;s=s*s;l>>=1;}ll ans=0;for(int i=0;i<=cnt;i++){ans=(ans+A.v[0][i])%mod;}cout<<ans<<endl;return 0;
}
View Code

 

posted @ 2019-04-07 21:19 liankewei123456 阅读( ...) 评论( ...) 编辑 收藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31161.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络舆情监测系统TOOM

在当今社会网络信息纷繁错杂&#xff0c;一条小小的舆情信息很可能引发异常舆情风暴&#xff0c;导致严重的舆情危机&#xff0c;而网络舆情监测系统能&#xff0c;更好地全面监测网络信息&#xff0c;未雨绸缪&#xff0c;精准把控&#xff0c;及时发现及时处理&#xff0c;为…

讯飞星火大模型V1.5发布 刘庆峰:我们要追赶OpenAI

雷递网 乐天 6月9日 讯飞星火认知大模型V1.5今日正式发布。讯飞称&#xff0c;时隔一月&#xff0c;星火大模型不仅各项能力获得持续提升&#xff0c;且在综合能力上实现三大升级&#xff1a;开放式知识问答取得突破&#xff0c;多轮对话、逻辑和数学能力再升级。星火APP同步发…

英伟达把GPT-4塞进我的世界,打游戏快15倍:AI大佬沉默了

深度学习自然语言处理 分享来自&#xff1a;机器之心 游戏行业可能要变天&#xff1f; 通用 AI 大模型 GPT-4 进游戏了&#xff0c;进的是开放世界&#xff0c;而且玩出了高水平。 昨天&#xff0c;英伟达发布的 VOYAGER 给 AI 圈内带来了一点小小的震撼。 VOYAGER 是第一个大模…

英伟达将GPT-4接入我的世界,无需人类插手,打游戏快15倍!

夕小瑶科技说 分享 来源 | 机器之心 游戏行业可能要变天&#xff1f; 通用 AI 大模型 GPT-4 进游戏了&#xff0c;进的是开放世界&#xff0c;而且玩出了高水平。 昨天&#xff0c;英伟达发布的 VOYAGER 给 AI 圈内带来了一点小小的震撼。 VOYAGER 是第一个大模型驱动&#…

AI前沿速报0427:多领域的AI技术突破

​ 人工智能&#xff08;AI&#xff09;技术不断创新&#xff0c;引领全球各行各业的变革。本期速报为您带来了近期AI领域的一些重要发展&#xff1a; 【一、AI在时尚产业的应用】 AI技术在时尚产业的应用方面取得显著进展&#xff0c;如趋势预测、产品设计、个性化推荐以及减…

英伟达把GPT-4塞进我的世界,打游戏快15倍!AI大佬沉默了...

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【Transformer】微信交流群 转载自&#xff1a;机器之心 游戏行业可能要变天&#xff1f; 通用 AI 大模型 GPT-4 进游戏了&#xff0c;进的是开放世界&#xff0c;而且玩出了…

chatgpt赋能python:**介绍**

介绍 炒股是一个受到全球人民广泛争议的话题。它可以提供巨大的回报&#xff0c;但同时也存在风险。Python的出现为炒股爱好者们提供了一个新的利器。Python是一种易于编写、易于阅读和易于学习的高级编程语言&#xff0c;它被广泛应用于各种各样的领域。在股票市场上&#xf…

chatgpt赋能python:Python如何自动化买入股票

Python如何自动化买入股票 股票交易是一项非常有利可图的投资方式&#xff0c;但是如果没有足够的经验和时间&#xff0c;它也可能会变成一种风险。 许多投资者都希望能够自动化他们的交易&#xff0c;让他们的投资更加稳健和有效。 在过去&#xff0c;这意味着需要聘请一支…

chatgpt赋能python:Python模拟网上购物

Python模拟网上购物 随着电子商务的飞速发展和普及&#xff0c;越来越多的人选择在网上购物。而如今&#xff0c;网上购物已经成为人们生活中不可或缺的一部分。这篇文章将介绍如何使用Python模拟网上购物的整个流程&#xff0c;让您了解网购的全过程&#xff0c;并为Python初…

2023彩虹易支付最新原版开源网站源码

2023彩虹易支付最新原版开源网站源码&#xff0c;完整的易支付源码&#xff0c;无后门。 下载地址&#xff1a;https://www.djmale.cn/49.html 一、源码介绍 完整的易支付源码 全开源批量生成商户即时到账功能自动提现功能 彩虹支付源码,新增和修改了近400个文件&#xff0c…

面试逻辑题

逻辑题目 逻辑题目现在也是面试中常考的题目,也不清楚面试出这种题目的意义,可能就是考察面试人员是否逻辑清晰. 这种题目没有什么好的方法,除非你见过原题,否则,只能根据所给出的条件慢慢分析,尽量不要用常规思路,希望大家要跳跃思维. 如果实在不行就给出一种解法,可能不是最…

程序员面试必看32道经典逻辑推理题

写在前面&#xff1a; 此文档由一位学长整理&#xff0c;转载请附上原文出处链接 32道经典逻辑推理题包括有关二进制、水桶、钱、蓝眼、时间、重量、数学、其他等问题 Click here 有秘密哦&#xff01;&#xff01;&#xff01; 点击浏览 文章目录 一、数字的魅力二、分而治之…

文心一言 VS chatgpt (12)-- 算法导论3.1 6~7题

六、证明&#xff1a;一个算法的运行时间为θ(g(n))当且仅当其最坏情况运行时间为O(g(n))&#xff0c;且其最好情况运行时间为Ω(g(n)) 。 文心一言&#xff1a; chatgpt&#xff1a; 要证明「一个算法的运行时间为θ(g(n))当且仅当其最坏情况运行时间为O(g(n))&#xff0c;且…

又一款侵权商标专利案件来袭,23-cv-3635UGG

案件号23-cv-3635 预警侵权词&#xff1a;UGG 类型&#xff1a;商标、外观设计专利 原告律所&#xff1a;GBC 起诉时间&#xff1a;2023/6/8 权利人&#xff1a;Deckers Outdoor Corporation, et al 近两年历史案件&#xff1a;22-cv-1512&#xff1b;22-cv-665&#xff…

聚光汇智|解析2023中国光电子博览会的创新维度

2023年5月22日&#xff0c;工信部、国家发改委等10个部门印发《科技成果赋智中小企业专项行动&#xff08;2023—2025年&#xff09;》&#xff0c;该政策指出到2025年&#xff0c;健全成果项目库和企业需求库&#xff0c;完善赋智对接平台体系&#xff0c;构建供需“精准化”对…

chatgpt赋能python:Python怎么改为中文?

Python怎么改为中文&#xff1f; Python是一种高级编程语言&#xff0c;具有易读性、简单性和可扩展性的特点。它广泛应用于Web开发、数据分析、人工智能等领域。如何将Python改为中文&#xff1f;下面将为您详细介绍。 为什么要将Python改为中文&#xff1f; Python的英文是由…

Nature发AIGC禁令!投稿中视觉内容使用AI的概不接收

夕小瑶科技说 分享 作者 | 西风 来源 | 量子位 作为最权威的科学期刊之一&#xff0c;Nature近日明确表态&#xff1a; 禁止使用生成式人工智能&#xff08;AIGC&#xff09;创作的图像和视频内容&#xff01; 这也就意味着&#xff0c;除了主题是讨论AI的文章&#xff0c;任…

LlamaIndex:轻松构建索引查询本地文档的神器

一、介绍 1.1、背景 在使用 OpenAI 提供的 GPT 系列模型时&#xff0c;我们可能会发现对于一些简单的问题&#xff0c;例如中文事实性问题&#xff0c;AI 往往会编造答案。而当询问最近发生的新闻事件时&#xff0c;AI 会直接表示自己不知道未来21年的情况。 为了解决这个问…

BEV专栏(一)从BEVFormer深入探究BEV流程(上篇)

前言 本文提出了一种基于Transformer和时间结构的Birds-Eye-View&#xff08;BEV&#xff09;编码器&#xff0c;称为BEVFormer。该编码器可以有效地聚合来自多视角摄像机和历史BEV特征的时空特征。 本教程禁止转载。同时&#xff0c;本教程来自知识星球【CV技术指南】更多技术…

攀登造芯之路:玄铁已出,生态为王

作者&#xff1a;老G先生 相传玄铁重剑&#xff0c;由“天外流星”即玄铁制成&#xff0c;乃通体玄铁&#xff0c;剑身如墨&#xff0c;透出赤色红光&#xff0c;剑体隐约有黑洞吸力&#xff0c;乃武林至尊&#xff0c;重达八八六十四斤 &#xff0c;独孤求败&#xff0c;四十岁…