A12689 | Cubeword
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
A cubeword is a special type of a crossword. When building a cubeword, you start by choosing a positive integer $a$ : the side length of the cube. Then, you build a big cube consisting of $a \times a \times a$ unit cubes. This big cube has 12 edges. Then, you discard all unit cubes that do not touch the edges of the big cube. The figure below shows the object you will get for $a=6$ .
Finally, you assign a letter to each of the unit cubes in the object. You must get a meaningful word along each edge of the big cube. Each edge can be read in either direction, and it is sufficient if one of the two directions of reading gives a meaningful word.
The figure below shows the object for $a=6$ in which some unit cubes already have assigned letters. You can already read the words 'SUBMIT', 'ACCEPT' and 'TURING' along three edges of the big cube.
You are given a list of valid words. Each word from the wordlist may appear on arbitrarily many edges of a valid cubeword. Find and report the number of different cubewords that can be constructed, modulo $998,244,353$ .
If one cubeword can be obtained from another by rotation or mirroring, they are considered distinct.
Finally, you assign a letter to each of the unit cubes in the object. You must get a meaningful word along each edge of the big cube. Each edge can be read in either direction, and it is sufficient if one of the two directions of reading gives a meaningful word.
The figure below shows the object for $a=6$ in which some unit cubes already have assigned letters. You can already read the words 'SUBMIT', 'ACCEPT' and 'TURING' along three edges of the big cube.
You are given a list of valid words. Each word from the wordlist may appear on arbitrarily many edges of a valid cubeword. Find and report the number of different cubewords that can be constructed, modulo $998,244,353$ .
If one cubeword can be obtained from another by rotation or mirroring, they are considered distinct.
输入格式
The first line contains a single integer $n$ ( $1 \leq n \leq 100,000$ ) – the number of words.
Then, $n$ lines follow. Each of these lines contains one word that can appear on the edges of the big cube. The length of each word is between 3 and 10, inclusive.
It is guaranteed that all words are different.
Then, $n$ lines follow. Each of these lines contains one word that can appear on the edges of the big cube. The length of each word is between 3 and 10, inclusive.
It is guaranteed that all words are different.
输出格式
Output a single integer, the number of distinct cubewords for the given list of valid words modulo $998,244,353$ .
Scoring
Subtask 1 (21 points): the words consist only of letters 'a' - 'f' (lowercase)
Subtask 2 (29 points): the words consist only of letters 'a' - 'p' (lowercase)
Subtask 3 (34 points): the words consist of letters 'a' - 'p' (lowercase) and 'A' - 'P' (uppercase)
Subtask 4 (16 points): the words consist of letters 'a' - 'z' (lowercase), 'A' - 'Z' (uppercase) and digits '0' - '9'
Scoring
Subtask 1 (21 points): the words consist only of letters 'a' - 'f' (lowercase)
Subtask 2 (29 points): the words consist only of letters 'a' - 'p' (lowercase)
Subtask 3 (34 points): the words consist of letters 'a' - 'p' (lowercase) and 'A' - 'P' (uppercase)
Subtask 4 (16 points): the words consist of letters 'a' - 'z' (lowercase), 'A' - 'Z' (uppercase) and digits '0' - '9'
输入输出样例
输入 #1
1 radar
输出 #1
1
输入 #2
1 robot
输出 #2
2
输入 #3
2 FLOW WOLF
输出 #3
2
输入 #4
2 baobab bob
输出 #4
4097
输入 #5
3 TURING SUBMIT ACCEPT
输出 #5
162
输入 #6
3 MAN1LA MAN6OS AN4NAS
输出 #6
114
In the first sample, the only possibility is for the word "radar" to be on each edge of the cube.
In the second sample, there are two cubes, which are just rotations of each other – the word "robot" is on every edge, and the difference between the two cubes is whether the lower left front corner contains 'r' or 't'.
The third sample is similar to the second one. The fact that we can read the word on each edge in both directions does not affect the answer.
In the fourth sample, there is one cube with the word "bob" on each edge. There are also $2^{12} = 4096$ cubes with the word "baobab" on each edge. (For each of the 12 edges, we have two possible directions in which the word "baobab" can appear.)
In the second sample, there are two cubes, which are just rotations of each other – the word "robot" is on every edge, and the difference between the two cubes is whether the lower left front corner contains 'r' or 't'.
The third sample is similar to the second one. The fact that we can read the word on each edge in both directions does not affect the answer.
In the fourth sample, there is one cube with the word "bob" on each edge. There are also $2^{12} = 4096$ cubes with the word "baobab" on each edge. (For each of the 12 edges, we have two possible directions in which the word "baobab" can appear.)
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted