Wannafly挑战赛9: B. 数一数
本文共 2051 字,大约阅读时间需要 6 分钟。
链接: 来源:牛客网
题目描述
设s,t为两个字符串,定义f(s,t) = t的子串中,与s相等的串的个数。如f("ac","acacac")=3, f("bab","babab")=2。现在给出n个字符串,第i个字符串为s
i。你需要对
,求出
,由于答案很大,你只需要输出对 998244353取模后的结果。
输入描述:
第一行一个整数n。接下来n行每行一个仅由英文字母构成的非空字符串,第i个字符串代表si。
输出描述:
共n行,第i行输出对 998244353取模的结果。
对于对于字符串s和t,当前仅当s==t时f(s, t)和f(t, s)都为1,否则一定有一个是0
答案求的是连乘,所以一旦某个f(s, t)是0,那么最后串s的答案就一定为0
对于num个完全相同的串s,可以把它们缩成1个,这样若f(t, s)==x,那么s对t的贡献就是x^num
去重后每计算一个f(s, t)都一定会得出一个串的答案(为0)所以最后复杂度为O(len+n)
#include #include #include #include
转载地址:http://vqmgf.baihongyu.com/