毎日格上の問題を倒すやつの22日目です。
問題リンク
問題概要
集合の列に対して、隣り合う要素で片方にしかないものがちょうど1つであるものを、「素晴らしい整数の列」とするよ。
また、「素晴らしい整数の列」のスコアを、 を含む集合の個数をすべての に対して求めたものの総積とするよ。
すべての「素晴らしい整数の列」のスコアの和を で割ったあまりを求めてね。
解法
長さ の数列を決めると、天才ができます。
最初の集合は 通りですが、これらすべてに対するスコアの和が になることが証明できます。
なので、これと数列の数の積が答えです。1
提出コード
MOD=998244353 N,M=map(int,input().split()) print((pow(N,M,MOD)*pow(M,N-1,MOD))%MOD)
Submission #46463209 - AtCoder Regular Contest 147
感想
天才をするの気持ちいいよね
- 過去一雑じゃないですか?↩