山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

[ALDS1_5_D] The Number of Inversions

マージソートを利用した反転数の計算

プログラムコンテスト攻略のためのアルゴリズムとデータ構造7章6節 反転数をやっていきます。

反転数とは数列  A = [  a_0, a_1,  \cdots  a_n ] において、

 a_i  \gt a_j かつ  i \lt j

である組 (i, j) の個数を言います。バブルソートでも反転数がでてきますね。

続きを読む

未来の科学者たちへ 物質・材料研究機構(NIMS)

科学の面白さや凄さを伝えてくれる動画

www.youtube.com

 

未来の科学者たちへと題して数分で科学を分かりやすく伝えてくれる動画のシリーズです。

www.nims.go.jp

上記のサイトのコラムで登場する動画がYouTubeでまとめてみることができます。材料に注目した動画で非常に面白いです。

リーダブルコードを読む その11

15章 「分 /  時間カウンタ」を設計・実装する

最終章です。

実践例を通して読みにくいコードを読みやすいコードにしていく過程を学びます。

コードの計算量やメモリ使用量などを比較して解決策を決める。

読み終えた感想

この本を読むことだけでは可読性が高いコードを書くことは難しいとおもいました。ですが、読みやすいコードとは何かということを提示してくれる本だと思います。

この本を活かすにはプログラミング能力がある程度備わっていないと厳しいかもしてません。なので、他の本と組み合わせてコーディング力を上げていきたいと思います。 

 

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

 

 

AtCoderを始めてから二ヶ月間の成績

AtCoder Beginner Contest

競技プログラミングを始めて約二ヶ月になりますが、AtCoderのコンテストの成績を見てみます。

 

f:id:yamakasa3:20180611184607p:plain

最新のレートは622ですが、過去の成績を見る限り500位が僕の実力かなと思います。

今後の勉強予定

  • yukicoderのレベル2を全て埋める(1と1.5は埋めた)
  • AtCoder Beginner Contestの過去問をC問題まで埋める
  • プログラムコンテスト攻略のためのアルゴリズムとデータ構造を終わらせる

AtCoder Beginner Contest 099 の感想

AtCoder Beginner Contest 099

結果

C問題まで解くことができました。D問題の題意は分かりましたが、どのようにして解いたらいいのか分かりませんでした。全探索でしょうか?

続きを読む

[yukicoder] No.7 プライムナンバーゲーム [レベル: 2]

Groudy数

問題

No.7 プライムナンバーゲーム - yukicoder

解説記事を読むとこのような問題はGroudy数というようです。

続きを読む