ABC286に出た。キーボードを買い替えてから初のプロコンだった。ちょっとまだタイピングが慣れないかも?速度は出るようになってきたけどちょいちょいミスる。
A: やるだけ
B: やるだけ
C: 1個ずつずらしたやつ全部試せばいい
D: 作れる金額をDPで全部求めればよく、$O(X\sum B)$で10^7オーダーなので間に合う。
E: 全点対間最短はワーシャルフロイドすればよいが、お土産は別途求める必要がある。全ての都市について、その都市を始点とする場合のお土産の価値の最大を求める。近い都市から順に、最短経路なら遷移という感じでDPしていけばよい。
F: 全ての頂点について出る辺が1のグラフということはサイクルもしくは6の字形のグラフにしかならない。得られるのはサイクル上でいくつ移動したかしかないが、それはつまり剰余が取れるということになる。いくつも剰余の情報が得られるということは中国剰余定理やるだけ。このへんまでは割とパッと思いつけたが、中国剰余定理に慣れてなかったのでサイクルの作り方でかなり悩んだ。
各サイクル長の和は当然M=110以下、かつ各サイクル長の積はN=10^9以上でなければならない。またサイクル長は全て互いに素でなければならない。サイクル長は素数にするのが得だろうと強く思い込んでしまっていたのだが、110を超えない最大を考えると2,3,5,7,11,13,17,19,23となり、和は100で積は2×10^8くらいになってしまう。10^9に届かない。なんかいい感じの素数の取り合わせがあるのかと思ったが、全探索して無理ということが分かり、最終的に「素数でなくても互いに素でさえあれば良いのだから、2と3を4と9などにすればよい」ということで決着した。これは中国剰余定理の扱いに慣れていればスッと思いつけてた気がするなあと思うなど。
筋トレをした。今日はスクワット。
VOICEVOXをConoHaのVPSで動かしてみるなどした。Dockerコンテナが配られているのでそれを使ってみる。手元のPCだとGPU付きなのでほぼ一瞬なのだが、ConoHa VPS(1GBプラン)で動かしてみると5秒くらいかかる。もしかしたらIPv6への接続をトライしているみたいなので遅くなったりしているのかとも思ったが、恐らくそういうことは起こっていなさそうだという結論に至った。単純にVPSのCPUでは遅い。
それからもう一つ、手元環境(Windows)でもDockerで動かしてみたのだが、GPUバージョンがなんか動かなかった。Dockerじゃないアプリ版は普通に動くのに。エラー文で調べてみるとこういうissueが立っており、解決してなさそうだった。
https://github.com/VOICEVOX/voicevox_engine/issues/585
Categories: 未分類