2022-04-28 Stacklands をクリアした
『 Stacklands 』 (https://store.steampowered.com/app/1948280/Stacklands/) をクリアした。バージョンは v1.0.8 。
実績・カード・アイデア・クエストをコンプリートした。時間は 6h 程度。 52 weeks 。特に難しいところもなくゲームオーバーもなしにクリアできた。
いわゆる「クラフト」的な要素を「カードをスタックする」ことで表現している点が面白い (?) のかな。カードの配置がガタついたりする点にややストレスを感じる。
以下ネタバレがあるので注意。
見つけにくそうなのは Dog (Wolf + Bone) 。 Wolf をなんとかするところの連想からでなんとかなるかな。あとは Graveyard (x2 Corpse) とか。ぼくは完全に偶然で邪魔な死体カードを重ねたことで見つけた。完全に邪魔なカードだから重ねたくなるので意外と自然に見つかるものなのかもしれない。
ラスボスは軽い気持ちで重ねたら唐突にはじまってしまったので慌てた。全員で適当に殴ったら倒せてしまった。 Swordsman を十分にそろえておくと良さそう。
個人的には序盤〜中盤での Milkshake (Milk + Berry) が換金用途で良かった。 Iron bar への移行が遅くてもたついたところがあった。 Potato や Onion などは Campfire や Stove での料理を狙ったけどあまり活かせなかった。料理は換金するにしても先の Milkshake や Fruit Salad のほうが手軽だし、食用なら Apple か Carrot あたりで十分そう。 Berry は Milkshake にするも良し Apple と合わせて Fruit Salad にするも良しで潰しは効くものの 1,1 なので状況を見てかな。
死にそうにないので切り上げて月を短くして 2 周目をプレイしてみる。
ABC147 : AtCoder Beginner Contest 147 A, B, C, D を解いた。
- A - Blackjack
https://atcoder.jp/contests/abc147/tasks/abc147_a
- 提出: https://atcoder.jp/contests/abc147/submissions/31323405
A_1 + A_2 + A_3 >= 22
- B - Palindrome-philia
https://atcoder.jp/contests/abc147/tasks/abc147_b
- 提出: https://atcoder.jp/contests/abc147/submissions/31323440
- 回文へと変更するのに必要な文字数を求める
- 対応する文字で不一致なものを変更しないといけない
(0..s.len() / 2).filter(|i| s[i] != s[n - 1 - i]).count()
- 中央の文字は判定しなくてもいい
- C - HonestOrUnkind2
https://atcoder.jp/contests/abc147/tasks/abc147_c
- 提出: https://atcoder.jp/contests/abc147/submissions/31323726
N <= 15
なので2^N
で正直者と不親切な人のすべての組み合わせを試せる- ビット全探索を使って試す
- 組み合わせと矛盾する発言がある場合はその組み合わせは NG
- NG でない組み合わせのうち正直者の人数が最大のものが答えになる
- D - Xor Sum 4
https://atcoder.jp/contests/abc147/tasks/abc147_d
- 提出: https://atcoder.jp/contests/abc147/submissions/31324347
- XOR の時点でビットごとに独立して扱うことを疑う
N <= 3 * 10^5
なのでi, j
の組み合わせを試すことはできない- XOR なので 0 と 1 を組み合わせたときに 1 になることが分かる
- 0 の個数と 1 の個数を数えてそれぞれ 1 個ずつ選ぶ、つまり掛ければ 1 の個数が分かる
- あとはビットの位置に対応した
2^x
を掛ければ良い - まとめると、ビットごと (
0 <= i < 60
) に A を走査して 0 と 1 の個数を数えてその位の数と掛けたもの(0の個数) * (1の個数) * 2^i
の和を mod 1_000_000_007 で求めると答えになる
今日のコミット。