QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: incent

Posted at: 2026-03-10 13:03:15

Last updated: 2026-03-10 13:18:34

Back to Problem

一个 o(1.304^n) 的做法

本题题解的意思是,找到 $a_{i,j}=[i\in j]$ 这个矩阵的分解。

通过对更大的矩阵的分解,现在可以平均 $10/7$ 次运算处理 $2-bit$,所以复杂度是 $O(\sqrt{1.7}^n)$。

优点是这个做法对比较小的 $n$ 运算次数也有优势,缺点是

  • 随机化
  • 渐近不如已知的最好做法
  • 跑不过bitset(虽然跑过了几乎全部正解。)

给出分解结果:

uint8_t mat_pol[][2][4]={
0b1001,
0b0011,
0b0101,
0b0001,
0b1000,
0b1010,
0b1100,
0b0001,

0b1001,
0b0011,
0b0101,
0b0001,
0b1000,
0b1010,
0b1100,
0b0001,

0b1001,
0b0011,
0b0101,
0b0001,
0b1000,
0b1010,
0b1100,
0b0001,

0b1001,
0b0011,
0b0101,
0b0001,
0b1000,
0b1010,
0b1100,
0b0001,

0b0101,
0b1010,
0b0001,
0b0010,
0b0100,
0b1100,
0b0001,
0b0011,

0b0101,
0b1010,
0b0001,
0b0010,
0b0100,
0b1100,
0b0001,
0b0011,

0b1001,
0b1010,
0b0101,
0b0010,
0b0101,
0b1000,
0b0001,
0b0011,

0b0001,
0b1010,
0b0110,
0b0010,
0b0001,
0b1001,
0b0101,
0b0011,

0b0011,
0b0001,
0b1100,
0b0100,
0b0010,
0b0001,
0b1010,
0b0101,

0b0011,
0b0001,
0b1100,
0b0100,
0b0010,
0b0001,
0b1010,
0b0101,

0b0101,
0b0010,
0b0001,
0b1001,
0b0100,
0b0110,
0b1001,
0b0011,

// 0b0001,
// 0b0011,
// 0b0101,
// 0b1111,
// 0b1111,
// 0b0101,
// 0b0011,
// 0b0001,

// 0b0001,
// 0b0011,
// 0b0101,
// 0b1111,
// 0b1111,
// 0b0101,
// 0b0011,
// 0b0001
};

https://qoj.ac/submission/1865815

以及一些参考文献

https://www.cnblogs.com/Elegia/p/18123708/my-writings

Comments

No comments yet.