よすぽコン2解説
よすぽコン2 解説
お疲れ様でした。
A 数列swap
最初の数列の反転数をXとすると答えは max(X-K, 0) です
隣り合う要素を交換する時
- 左のほうが大きい -> 反転数は-1
- 要素の大きさは同じ -> 反転数は変化なし
- 右のほうが大きい -> 反転数は+1
となります また、全ての隣り合う要素について
右のほうが大きい or 要素の大きさは同じ
となるとき、その数列はソートされています なので当然反転数は0です
以上より, 反転数が0でなければ操作ごとに反転数を-1出来るため、答えは max(X-K, 0) です
B LCM-Card
dp[i][j][x] = i枚目まで考えている, j枚引いていて, それらのlcmがxである
という動的計画法を高速化します
xはXの約数だけ考えればOKです。これで多分通るかなぁ
もっと高速化します
Xの素因数の種類はO(logX)個です 具体的に計算すると最大で13種類です
xとXは、素因数の種類ごとに同じ個数あるかどうかだけ保存すればOKです これでxの種類は2素因数の種類に落ちます
C 今日の典型データ構造
適当にTLE決めたら厳しかったっぽいですね あとジャッジキューを破壊した
想定解放はO(Nsqrt(N))です
行ごとに0でない要素数を数えて, sqrt(N)を超えたら行だけは個別に計算すればOKです
D チェックディギット
筋肉FA:antaさん No筋肉FA:sugim
下5桁の数字についてA_1,A_2,A_3,A_4,A_5とすると
(A_1 * 3 + A_2 * 4 + A_3 * 5 + A_4 * 6 + A_5 * 7) % 11 % 10
らしいです
%11は気づきませんね
ちなみに表には入ってないけど去年第五類という人の学籍番号が1つだけ入っています
なので規則を知らなくても期待値5回で通すことも可能です