QOJ.ac

QOJ

Limite de temps : 1.5 s Limite de mémoire : 256 MB Points totaux : 100

#1457. FFT 算法

Statistiques

当我想在模运算中对次数小于 $2^k$ 的多项式应用 FFT 算法时,我需要找到 $\omega$ —— 一个 $2^k$ 次本原单位根。

形式化地,对于给定的两个整数 $m$ 和 $k$,我需要找到任意一个整数 $\omega$ 满足:

  • $0 \le \omega < m$
  • $\omega^{2^k} \equiv 1 \pmod m$
  • 对于所有 $0 < p < 2^k$,都有 $\omega^p \not\equiv 1 \pmod m$

在本题中,请你帮我找到这个 $\omega$,或者确定它不存在。由于我们讨论的是 FFT 的应用,我为 $k$ 设置了一些合理的限制:对于较小的 $k$,朴素的多项式乘法已经足够,而对于较大的 $k$,FFT 的耗时会超过 1 秒(毕竟我们是竞赛选手)。

输入格式

输入仅一行,包含两个整数 $m$ 和 $k$ ($2 \le m \le 4 \cdot 10^{18}$, $15 \le k \le 23$)。

输出格式

输出任意一个满足条件的 $\omega$,如果不存在这样的 $\omega$,则输出 $-1$。

样例

样例输入 1

998244353 23

样例输出 1

683321333

样例输入 2

1048576 15

样例输出 2

64609

样例输入 3

3 23

样例输出 3

-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.