CF竞赛题目讲解_CF434C(AC自动机 + 整数字符串遍历)
2022-10-30 09:42 作者:Clayton_Zhou | 我要投稿
AC 代码
https://codeforces.com/contest/434/submission/178455531
题意:
食堂里的每一块豆腐都有一个 m进制的数字,所有数字都在范围[l, r] (l和r是 m进制的数),
并且对于范围[l, r] ,有一块豆腐有这个号码。
为了判断什么豆腐是麻婆豆腐,Tachibana Kanade选择了n个 m进制的数字字符串,并为每个字符串指定了一个值。
如果一个字符串出现在豆腐的编号中,则该字符串的值将被添加到该豆腐的值中。
如果字符串出现多次,则该值也会被添加多次。最初,每个豆腐的价值都是零。
Tachibana Kanade认为价值不超过k的豆腐是麻婆豆腐。
所以现在Tachibana Kanade想知道,麻婆豆腐有多少块?
第一行包含三个整数n、m和k(1 ≤ n ≤ 200; 2 ≤ m ≤ 20; 1 ≤ k ≤ 500).
其中n表示字符串的数量,m表示所用的基数,k表示麻婆豆腐的值限制。
第二行表示数字l。行中的第一个整数是len(1 ≤ len ≤ 200),描述l的长度(m进制时的位数)。
然后跟随len个整数a_1, a_2, ..., a_len(0 ≤ a_i < m;a_1 > 0),用空格分隔,
表示l的数字,其中a_1是最高数字,a_len是最低数字。
第三行表示与l格式相同的数字r, 1 ≤ l ≤ r
第i行包含第i个数字字符串,vi-第i个字符串的值(1 ≤ vi ≤ 200).
题解:
AC自动机 + 整数字符串遍历
遍历在范围[l, r] (l和r是 m进制的数)内的m进制整数。
作为字符串是否包含AC自动机中的整数字符串。