题目名称 4299. 学姐的下午茶
输入输出 lowtea.in/out
难度等级 ★★☆
时间限制 2000 ms (2 s)
内存限制 512 MiB
测试数据 10
题目来源 GravatarRpUtl 于2026-02-03加入
开放分组 全部用户
提交状态
分类标签
组合数学 容斥原理
查看题解 分享题解
通过:12, 提交:30, 通过率:40%
GravatarRpUtl 100 0.988 s 11.83 MiB C++
Gravatar彭欣越 100 1.006 s 3.78 MiB C++
Gravatarxuyuqing 100 1.819 s 19.72 MiB C++
Gravatar王潇翊 100 2.005 s 17.96 MiB C++
Gravatar王潇翊 100 2.032 s 17.94 MiB C++
Gravatar王潇翊 100 2.109 s 17.93 MiB C++
Gravatar2_16鸡扒拌面 100 3.228 s 8.65 MiB C++
GravatarRpUtl 100 3.449 s 8.65 MiB C++
Gravatar汐汐很希希 100 4.114 s 6.08 MiB C++
Gravatardbk 100 5.146 s 3.69 MiB C++
本题关联比赛
期末考试0
关于 学姐的下午茶 的近10条评论(全部评论)
非常好的题,但是为什么我按照100分思路写的代码正好得了五十分
Gravatar2_16鸡扒拌面
2026-02-07 16:43 1楼

4299. 学姐的下午茶

★★☆   输入文件:lowtea.in   输出文件:lowtea.out   简单对比
时间限制:2 s   内存限制:512 MiB

【题目背景】

Mami 的下午茶来了很多新客人,她决定做一些甜点招待客人们。

【题目描述】

具体的,Mami 准备了 $n$ 到新甜点,每个甜点的制作过程可以用 $01$ 字符串 $s_i$ 来表示。

Mami 喜欢在下厨前就记住所有菜品的制作过程,但是 Mami 并不喜欢记很多东西,所以她打算把这 $n$ 个 $s_i$ 插入到一颗字典树中。记 $cnt$ 为这个字典树中的节点数,她可以花费 $cnt$ 分钟来记住这个字典树来记住所有的甜点。

但是贪玩的贝贝不小心把咖啡打翻在菜谱上,导致这 $n$ 个字符串中有一些字符变成了 $?$。这些 $?$ 都有可能是 $1$ 或者 $0$。Mami 很头疼,她希望你告诉她所有可能的 $2^k$($k$ 为 $?$ 的个数)种情况下的最终字典树的节点数之和

答案对 $10^9+7$ 取模。

在本题中,将一个 $01$ 串插入到一个字典树定义为:

1. 初始时,当前节点为根。

2. 从前往后遍历这个 $01$ 串的所有字符。

3. 如果当前节点没有与此 $01$ 字符对应的儿子,那么新建一个节点作为对应的儿子。

4. 然后将当前节点修改为对应的儿子。

例如:将 $000,010$ 插入到一个仅有根节点的字典树后,这个字典树的节点数为 6。

【输入格式】

第一行一个整数 $n$。

接下来 $n$ 行,每行一个只包含 $0,1,?$ 的字符串。

【输出格式】

一行一个整数,表示答案

【样例输入1】

5
00110
01101
10011
11101
11111

【样例输出1】

21

【样例输入2】

3
?
0?
?1?

【样例输出2】

88

【数据规模与约定】


特殊性质:$s_i$ 中不含 $?$。

对于所有数据,满足 $n\le 20,|s_i|\le 100$。

大样例,所有大样例均无特殊性质。

【来源】

HihoCoder - 1646。