HaskellのdoctestのQuickCheckでエラーが出た
[増補改訂]関数プログラミング実践入門──簡潔で,正しいコードを書くために:書籍案内|技術評論社 の第6章の「QuickCheckを併用する」でエラーが出た。
書籍の通り、
stack install doctest
を実行- $HOME/.local/binにパスが通っていることを確認
doctest DocmentSample.hs
を実行解決
yoheikoga.github.io github.com 上の二つを参考にして、
stack install QuickCheck
を実行stack exec doctest DocmentSample.hs
を実行
ABC179に参加しました
2020年9月19日のABC179に参加しました。失敗してレートを落としてしまったので反省のため記録に残したいと思います。
結果
kumatakoさんのAtCoder Beginner Contest 179での成績:4041位
— くま (@kumatako4130) 2020年9月19日
パフォーマンス:721相当
レーティング:912→894 (-18) :(#AtCoder #ABC179
3完で冷えちゃったhttps://t.co/8q2B3KA2Yr
茶パフォです。しばらくABCでは緑パフォで、前回のABC178では水パフォだったのでショックでした。
A - Plural Form
A問題はミスなく解けてよかったです。
B - Go to Jail
最初の提出がWAでした。n-2番目の要素まで走査したいときのfor文の添え字の条件が間違っていました。テストケースに引っかからないミスだったのでそのまま提出してしまいました。
C - A x B + C
これがスムーズに解けなかったのが悔しいです。絶対TLEになる解法しか思いつかず、とても時間をかけました。
A * B + C = Nを満たす(A,B,C)の組の個数を求める問題で、Aを固定して条件を満たすBとCの個数を数えればO(N)で解けるところを、Cを固定してやろうとしたのでずっと悩んでいました。
D - Leaping Tak
コンテスト後、解説を見てもよくわからず色々な方のブログをみたりで何とかACしました。
E - Sequence Sum
D問題と同じくコンテスト後に解説を見てACしました。コンテスト中はD問題で疲弊していて問題文に目を通しただけになってしまいましたが、もうちょっと粘るべきだったと思います。Aiがループしそうだとは思ったのですが、ループを見つけて色々する問題に苦手意識があったので諦めてしまいました。
反省
DとEは解けなくても実力相応だと思いますが、3完でも早めに解けていれば緑パフォだったのでミスなく解きたかったです。コンテスト中ずっとアップテンポな音楽を聴いていたのですが、これが注意力に影響していたのかもと思っています。
これからの精進
一週間ほど水Diffに挑戦していましたが、緑Diffの問題はまだ半分しか解けていないのでそれも解きます。
今まで、アルゴリズムやデータ構造はそれを使う問題に当たってから勉強していましたが、名前を聞いたことがあるアルゴリズムなら何ができるかだけでも知っておいたほうがいいのかなと思いました。