ABC234
結果
A
B
C
D
1WAの4完で,パフォは,rating変動はででした.
考察
A問題
関数を宣言して問題に忠実に出力計算式を書けばACです.
見間違えに気を付ける.
B問題
個目の点( )と個目の点( )で全探索をして,最大値を更新していきます.
このやり方だと,自分自身との距離とか,同じ点同士の距離計算を2回したりとか無駄が多いですが,面倒だし計算量的には変わらないのでこれでOK.
C問題
を2進数で表し,をで置き換えればACです.
0と2のみで構成される数字を小さい方から並べていくと,2進数で1ずつ加算していく計算をすることとほぼ同じことに気づけば簡単です.(私はすぐに気付きませんでしたが)
D問題
登場した数列を連想配列で保持しておきます.(大小関係を高速に保持したいため)
の先頭項のうち,番目に大きい連想配列の場所をitとします(iteratorの意味).初めに先頭項を連想配列に突っ込んでおくと,itの初期値は連想配列の先頭です.
順列の番目以降はまずは連想配列に入れますが,それがitの値より大きければ番目に大きい値は1つずれるので,itを1つ先に送ります.itの値より小さければ番目に大きい値はそのままです.
感想
C問題で2ベキが絡みそうなことはすぐ気づけましたが,ACまではかなり時間がかかってしまったのが悔しいです.
D問題は凡ミスで20分無駄にしたのでもっと日々コードを書けという気持ちになりました....はい,書きます.