2022/10/2(日)

起きたら昼だった。昨日は思ったより疲れていたのかもしれない。あと体内時計のずれ。


今日解いた競プロの問題。

第4回ドワンゴからの挑戦状予選-C: ここ数日頑張っていたやつ。なんとか解けた。C++なのに時間制限ギリギリになってしまった。

昇順とかのルールを守るためにdp[i][j][k]:=(i番目までの人にj個のデスを分配するパターンであって、i番目の人のデス数がkであるもののパターン数) と置いた。愚直な$O(N(\sum killB)^3 + M(\sum killA)^3)$の解法をimos法で高速化し、$O(N(\sum killB)^2 + M(\sum killA)^2)$とした。$10^8$オーダーなのでギリギリだが、C++なら通る。想定解はもっと速いんだろうと思ったが、想定解もオーダーは変わらないっぽかった。ただちょっと計算法が違うっぽいので、そのうちちゃんと読んでみる。

解説だと「昇順でn人にm個を割り振る場合の数」を前計算した上で、グループ化して「各グループに任意に割り振る場合の数」を計算している?


XilinxのFPGA開発環境であるISEを入れようとしている。Vivadoは古いデバイスが使え無さそうな気配があるので見送り。

なにやらvirtualboxを要求されるので何事かと思ったが、もう古いアプリケーションだから仮想環境上で実行するというそういう話らしい。まあ納得。しかし実行してみたらkernel panickを起こして死ぬ。うーんこの。

Categories: