#P12292. [蓝桥杯 2024 国 Java A] 斗蛐蛐
[蓝桥杯 2024 国 Java A] 斗蛐蛐
题目描述
小蓝最近非常热衷于斗蛐蛐。她有 只不同的蛐蛐,每只蛐蛐的战斗力都可以用一个数 表示,含义是当第 只蛐蛐攻击别的蛐蛐时有 的概率打倒对方,有 的概率无事发生。
小蓝将 只蛐蛐按编号由 到 顺时针的顺序排成一圈,然后从 号蛐蛐开始发生以下的过程直到只剩下 只蛐蛐:
- 这只蛐蛐以各 的概率选定顺时针或逆时针方向。
- 这只蛐蛐攻击这个方向上第一只未被打倒的蛐蛐。
- 无论这次攻击是否打倒了蛐蛐,顺时针方向的下一只蛐蛐开始行动。
现在小蓝希望知道,最后剩下的蛐蛐是 号蛐蛐的概率是多少。为了防止精度误差,她希望你给出这个值在模素数 下的结果。
输入格式
输入的第一行包含两个正整数 ,用一个空格分隔。
第二行包含 个正整数,其中第 个正整数表示第 只蛐蛐在模 下的战斗力 。
输出格式
输出一行包含 整数,相邻整数之间使用一个空格分隔,其中第 个整数表示最后一只蛐蛐是 号蛐蛐的概率在模 下的表示。
2 1000000007
500000004 500000004
666666672 333333336
提示
样例说明
一共两只蛐蛐,蛐蛐的战斗力都是 , 号蛐蛐攻击 号蛐蛐若成功,则 号蛐蛐获胜,若失败则相当于双方位置交换,所以最终 号蛐蛐获胜概率 满足 解得 。
评测用例规模与约定
- 对于 的评测用例,,,即 在模 意义下为 ;
- 对于 的评测用例,;
- 对于所有评测用例,,, 必定为一个大于 的素数。