CF677C Vanya and Label
题目描述
在街上散步时,Vanya 看到一个标签是“Hide&Seek”。因为他是一个程序员,他用 $&$ 运算符将这两个词表示为 $64$ 进制下的整数,并进行了按位与运算,得到一个新单词。现在 Vanya 想到了某个字符串 $s$,他想知道有多少对长度为 $|s|$(即 $s$ 的长度)的单词,其按位与的结果等于 $s$。由于结果可能很大,请输出答案对 $10^9+7$ 取模后的结果。
Vanya 采用如下规则将字符串表示为 $64$ 进制下的数字:
- 字符 '0' 到 '9' 分别对应 $0$ 到 $9$;
- 字母 'A' 到 'Z' 分别对应 $10$ 到 $35$;
- 字母 'a' 到 'z' 分别对应 $36$ 到 $61$;
- 字符 '-' 对应 $62$;
- 字符 '_' 对应 $63$。
输入格式
输入仅一行,包含一个单词 $s$($1 \leq |s| \leq 100000$),只包含数字、大小写字母、字符 '-' 和 '_'。
输出格式
输出一个整数,表示满足条件的单词对的数量,对 $10^9+7$ 取模。
说明/提示
如果不清楚按位与(bitwise AND)的定义,建议查阅维基百科相关页面。
在第一个样例中,有 $3$ 种可能的组合:
1. $z \&\_ = 61\&63 = 61 = z$
2. $\_ \&z = 63\&61 = 61 = z$
3. $z \&z = 61\&61 = 61 = z$
由 ChatGPT 5 翻译