kumatakoの日記

競技プログラミングをしています。

HaskellのdoctestのQuickCheckでエラーが出た

[増補改訂]関数プログラミング実践入門──簡潔で,正しいコードを書くために:書籍案内|技術評論社 の第6章の「QuickCheckを併用する」でエラーが出た。

書籍の通り、

  1. stack install doctest を実行
  2. $HOME/.local/binにパスが通っていることを確認
  3. doctest DocmentSample.hs を実行
    f:id:kumatako4130:20210525192732p:plain
    エラー
    解決

    yoheikoga.github.io github.com 上の二つを参考にして、

  4. stack install QuickCheck を実行
  5. stack exec doctest DocmentSample.hs を実行
    f:id:kumatako4130:20210526011500p:plain
    成功

ABC179に参加しました

atcoder.jp

2020年9月19日のABC179に参加しました。失敗してレートを落としてしまったので反省のため記録に残したいと思います。

結果

 

f:id:kumatako4130:20200921162818p:plain

茶パフォです。しばらく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の問題はまだ半分しか解けていないのでそれも解きます。

今まで、アルゴリズムやデータ構造はそれを使う問題に当たってから勉強していましたが、名前を聞いたことがあるアルゴリズムなら何ができるかだけでも知っておいたほうがいいのかなと思いました。