CFCF2174C1.Beautiful Patterns (Easy Version)

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

这是该题目的简单版本,不同版本的区别在于本题满足 n2103n \le 2 \cdot 10^3。你只有在解决了本题所有版本后才能进行 hack。

进入古老的“回文宫殿”后,你注意到墙上有奇特的图案。图案是一块大小为 1×n1 \times n 的马赛克,由 nn 个小石子组成,每个小石子的一面涂成 mm 种颜色中的一种。

一个马赛克 ss 的正确性被定义为其所有非空回文子段的数量。马赛克的美丽度被定义为其正确性的平方。例如,对于马赛克 “rgrb”,共有五个回文子段:r、g、r、b 和 rgr。因此,其正确性为 55,美丽度为 2525

在游览宫殿时,你产生了这样的思考:如果每个小石子的颜色都是在 mm 种颜色中独立等概率选取的,那么这个马赛克的美丽度的期望值是多少?请输出该期望值对素数 pp 取模后的结果。

输入格式

每组测试输入包含多个测试用例。第一行包含测试用例数量 tt1t10001 \le t \le 1000)。接下来每个测试用例一行,包含三个整数 nnmmpp1n21031 \leq n \leq 2 \cdot 10^31m1071 \leq m \leq 10^7m<p<109m < p < 10^9),分别表示马赛克的长度、小石子的颜色种类数,以及结果需要取模的素数 pp

保证 pp 是素数。并且所有测试用例中 nn 之和不超过 21032 \cdot 10^3

输出格式

对于每个测试用例,输出该马赛克美丽度的期望值对 pp 取模后的结果。

更形式化地,令 x=px = p。可以证明,答案可以表示成一个既约分数 yz\frac{y}{z},其中 yyzz 为整数且 z≢0(modx)z \not\equiv 0 \pmod{x}。你需要输出 yz1modxy \cdot z^{-1} \bmod x,即 0t<x0 \le t < xtzy(modx)t \cdot z \equiv y \pmod{x} 的整数 tt

输入输出样例

  • 输入#1

    3
    2 2 101
    5 1 999999937
    100 23190 3214373

    输出#1

    57
    225
    2347147

说明/提示

在第一个测试用例里,长度为 22 的马赛克共有四种可能(当每个小石子可以用两种颜色构成时),其中两种有两段回文子段,另外两种各有三段。因此其美丽度的期望为 (224+224+324+324)=1321mod101=57\left(\frac{2^2}{4} + \frac{2^2}{4} + \frac{3^2}{4} + \frac{3^2}{4}\right) = 13 \cdot 2^{-1} \bmod 101 = 57

在第二个测试用例里,长度为 55 的马赛克的所有子段均为回文。

首页