A10418. Vanya and Label
编程题
普及/提高-
知识点
题目描述
While walking down the street Vanya saw a label "Hide&Seek". Because he is a programmer, he used $&$ as a bitwise AND for these two words represented as a integers in base $64$ and got new word. Now Vanya thinks of some string $s$ and wants to know the number of pairs of words of length $|s|$ (length of $s$ ), such that their bitwise AND is equal to $s$ . As this number can be large, output it modulo $10^{9}+7$ .
To represent the string as a number in numeral system with base $64$ Vanya uses the following rules:
- digits from '0' to '9' correspond to integers from $0$ to $9$ ;
- letters from 'A' to 'Z' correspond to integers from $10$ to $35$ ;
- letters from 'a' to 'z' correspond to integers from $36$ to $61$ ;
- letter '-' correspond to integer $62$ ;
- letter '\_' correspond to integer $63$ .
To represent the string as a number in numeral system with base $64$ Vanya uses the following rules:
- digits from '0' to '9' correspond to integers from $0$ to $9$ ;
- letters from 'A' to 'Z' correspond to integers from $10$ to $35$ ;
- letters from 'a' to 'z' correspond to integers from $36$ to $61$ ;
- letter '-' correspond to integer $62$ ;
- letter '\_' correspond to integer $63$ .
输入格式
The only line of the input contains a single word $s$ ( $1<=|s|<=100000$ ), consisting of digits, lowercase and uppercase English letters, characters '-' and '\_'.
输出格式
Print a single integer — the number of possible pairs of words, such that their bitwise AND is equal to string $s$ modulo $10^{9}+7$ .
输入输出样例
输入 #1
z
输出 #1
3
输入 #2
V_V
输出 #2
9
输入 #3
Codeforces
输出 #3
130653412
说明/提示
For a detailed definition of bitwise AND we recommend to take a look in the corresponding article in Wikipedia.
In the first sample, there are $3$ possible solutions:
1. $z&_=61&63=61=z$
2. $_&z=63&61=61=z$
3. $z&z=61&61=61=z$
In the first sample, there are $3$ possible solutions:
1. $z&_=61&63=61=z$
2. $_&z=63&61=61=z$
3. $z&z=61&61=61=z$