2022/4/4(月)
今日は割と時間を区切って作業に取り組めた。目に見える進捗が出たかというと微妙だが。
アニメの脚本にどうも厚みが出ないので、設定資料を作ることを決めた。短編なのでそんなの要らんかと思っていたのだが、設定が固まっていない以上どうやっても厚みを出すのは難しそうだと気づいた。
CMakeでの開発のための設定を試行錯誤している。どうもreleaseビルドにしたのにdebugビルドになる不具合があったのだが、どうやらビルドツールとしてVisual Studioなどを使う場合はコンフィグレーションではなくcmake –buildの時に–config=releaseとか付ける必要があるらしい。確かにVisual Studioでコンフィグレーションする場合はビルドするまでそもそもdebugとかreleaseとか決まっていなかったな。
泉鏡花「清心庵」を読み進めた。古風な文体で正直やや読み辛いが、ちょっとづつ明らかになっていく様子が面白い。
ここのところ読書をしていなかったので久々の読書になった。そもそも最近インプットが足りていない気がする。
筋トレをやった。また習慣に出来れば良いな。
ジョギングもしたかったのだが、今日は雨なのであきらめた。
今日解いた競プロの問題。
ABC246
- A: 解くのは簡単だけど折角だからいい実装にしたいなと思った結果、方針に悩んだ。setとか使ったけど結局微妙
- B: はい
- C: 少しだけアドホックな考察が必要になる初心者向けのいい問題。
- D: とりあえず$a\leq b$として対称性を崩す。$N\leq 10^{18}$のクソデカ制約だが$b^3$があるので$b\leq 10^6$まで走査すれば十分。各bについてaをにぶたんすれば勝ち。端の処理に注意。
- E: グラフとしてみれば普通にBFSが適用できるが、頂点数が$10^6$程度のオーダーなのに対し辺の数はその2乗くらいのオーダーになるので、愚直にBFSするとTLE。「このマスからこの向きへの移動は既に調べた」というフラグを作って不要な遷移を落としておくとACする。解説を見るとちょっと違う方針だったりして面白い。一度ダイクストラでTLEしたのだが、01BFSでもいけるのか。
- F: N個それぞれを選んだ場合について場合の数を足したりすると、たとえば$S_1$を選んでも$S_2$を選んでも作れる文字列とかを重複して数えてしまうので上手くいかない。上手く前計算すればアルファベットの全部分集合$2^{26}$走査してACできないかな~とか思ったけど、TLEどころかそもそもテストケースすら合わないので断念。仕方ないのでぐっとにらんだら$2^N$走査して包除原理やるのが普通に見えたのでそれしたら通った。「重複して数えてしまうので~」の時点で包除に思いを馳せるべきだったな。失敗。
ABC223-E 自力AC。ちょっと考えれば、仕切りの形は「二」の形か「T」の形以外にあり得ないことが分かるので、x/yとa/b/cの順序を交換しつつ全12通りを調べれば良い。なんか最初悩んだというか考察に自信が持てなかったけど、かなりあっけない問題だったな。ただ正直、仕切りの形が2パターンしかありえないのを厳密に証明しろと言われると困るかもしれない。
今日摂取したコンテンツ。
Categories: 未分類