#P16078. [Oni2019]Hipersimetrie
[Oni2019]Hipersimetrie
题目描述
一个超对称矩阵是递归定义的方阵:
-
任意 矩阵都是超对称矩阵;
-
当 时,一个 矩阵是超对称矩阵,当且仅当同时满足:
-
它关于竖直中轴、水平中轴、主对角线、副对角线都对称;
-
位于矩阵四个角上的四个子矩阵都是超对称矩阵。每个角上的子矩阵大小为
$$\left\lfloor \frac N2\right\rfloor \times \left\lfloor \frac N2\right\rfloor.$$
-
一个二进制矩阵是指所有元素均为 或 的矩阵。
一个 二进制超对称矩阵的值定义为:把矩阵元素按行从上到下、每行从左到右依次读出,得到一个长度为 的二进制数。这个二进制数对应的整数就是该矩阵的值。
任务
给定 和 ,在所有 二进制超对称矩阵的值中,按从小到大排序,求第 小的值。
由于答案可能非常大,只需要输出答案对 取模后的结果。
输入格式
第一行包含一个整数 。
第二行包含一个只由字符 0 和 1 组成的字符串,表示 的二进制表示。保证第一个字符为 1。
输出格式
输出一个整数,表示第 小的二进制超对称矩阵的值对 取模的结果。
数据范围
- ;
- ;
- 保证对于给定的 ,至少存在 个 二进制超对称矩阵。
子任务
| 子任务 | 分值 | 限制 |
|---|---|---|
| 1 | 27 | |
| 2 | 62 | |
| 3 | 11 |
样例
输入
3
100
输出
186
解释
。
第 小的矩阵为:
0 1 0
1 1 1
0 1 0
按行读取得到二进制数:
010111010
其十进制值为 。