[[AtCoder]]

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
programming_algorithm:contest_history:atcoder [2019/04/15] ikatakosprogramming_algorithm:contest_history:atcoder [2019/11/06] (現在) – [Python3ライブラリ・テクニック・読み物] ikatakos
行 16: 行 16:
     * コンテスト終了後に復習しやすい     * コンテスト終了後に復習しやすい
       * 他の人の解答が見られる       * 他の人の解答が見られる
-      * 多くの問題に対して、出題者または運営による解説PDFがアップロードされる +      * 定例的なコンテストに対して、出題者または運営による解説PDFがアップロードされる 
-      * YouTubeで解説生放送が開かれる+      * 定例的なコンテストに対して、YouTubeで解説生放送が開かれる
  
 =====ステキ周辺サービス(公式とは限らない)===== =====ステキ周辺サービス(公式とは限らない)=====
  
   * [[https://kenkoooo.com/atcoder/|AtCoder Problems]]   * [[https://kenkoooo.com/atcoder/|AtCoder Problems]]
-    * 過去問を、自身やライバルの AC済み/挑戦済み/未挑戦 で色別に一覧できる+    * 過去問を、自身やライバルの AC済み/挑戦済み/未挑戦 や、難易度で色別に一覧できる 
 +    * 自分の解いた問題の難易度に合わせ、次に解けそうな未挑戦の問題を提案してくれる 
 +    * ユーザのStreak数、A問題,B問題,毎のAC数などの統計情報が見られ
   * [[https://atcoder-scores.herokuapp.com/|AtCoder Scores]]   * [[https://atcoder-scores.herokuapp.com/|AtCoder Scores]]
     * 過去問をスコア別に集計、自身やライバルのACしたスコア分布などを一覧できる     * 過去問をスコア別に集計、自身やライバルのACしたスコア分布などを一覧できる
 +  * [[https://atcoder-replay.kakira.dev/|AtCoder Replay (β)]]
 +    * 参加したコンテストの順位の時間変動を見られる
   * [[https://not-522.appspot.com/|AtCoder Virtual Contest]]   * [[https://not-522.appspot.com/|AtCoder Virtual Contest]]
     * 過去問を使って疑似コンテストを行える     * 過去問を使って疑似コンテストを行える
   * [[https://jobs.atcoder.jp/|AtCoderJobs]]   * [[https://jobs.atcoder.jp/|AtCoderJobs]]
     * レーティングを使って企業と求職者をマッチング     * レーティングを使って企業と求職者をマッチング
 +
 +  * 拡張
 +  * [[https://qiita.com/yos1up/items/5739b3de65e4d94c1861|Scratcher's AtCoder の紹介 - Qiita]]
 +    * 学習用言語Scratchで解ける(%%C++%%に変換して提出してくれる)
 +  * [[https://qiita.com/sasaki_/items/360151709f5a9c3312ee|AtCoder Color Markという円を表示する拡張機能を作った話 - Qiita]]
 +    * 公式ページの参加者やパフォーマンス表示箇所の横に、レーティングに応じた色付きの円を追加
 +  * [[http://tatsumack.hatenablog.com/entry/2018/12/09/113908|AtCoderの拡張機能を3つ作った話 - tatsumack blog]]
 +    * Dropbox上にテストケースが公開されている過去問は、提出詳細ページの各テストケース名の横に入力・出力へのリンクを追加
  
 =====関連記事===== =====関連記事=====
行 54: 行 66:
 Pythonはスクリプト言語で、計算速度は速いとは言えない、というか遅い。 Pythonはスクリプト言語で、計算速度は速いとは言えない、というか遅い。
  
-だが、AtCoderでは1000点~などの高難度の問題でもない限り、きちんと実装すればほとんどの問題は通る。+だが、AtCoderでは1000点~などの高難度の問題でもない限り、きちんと実装すればほとんどの問題は通る。(注: 高難度の問題も多くは通るはず。ただし自分が多くは解けてないので、その割合は知らない)
  
 この「きちんと実装すれば」がポイントで、逆に言うと %%C++%% などでは多少効率の悪いプログラムを書いても通ってしまうことがあるが、Pythonだとなかなかそうはいかない。 この「きちんと実装すれば」がポイントで、逆に言うと %%C++%% などでは多少効率の悪いプログラムを書いても通ってしまうことがあるが、Pythonだとなかなかそうはいかない。
行 61: 行 73:
  
   * メリット   * メリット
-    * 学びやすい 
     * 環境構築しやすい     * 環境構築しやすい
     * 記述量が少ない     * 記述量が少ない
-    * 整数だろうとリストだろうと ''print()'' で出力できるので簡易デバッグしやすい 
     * 最近、機械学習とかで流行りなので、本業の分野によっては知識を相互に活かせる     * 最近、機械学習とかで流行りなので、本業の分野によっては知識を相互に活かせる
     * [[https://www.jetbrains.com/pycharm/|PyCharm]]という高機能IDEが無料で使える     * [[https://www.jetbrains.com/pycharm/|PyCharm]]という高機能IDEが無料で使える
-    * AtCoderでは、PyPyという、Pythonコードを高速に実行する言語を使うことができる +    * AtCoderでは、PyPyという、Pythonコードを高速に実行する実行時コンパイル言語を使うことができる 
-      * ごく稀に使えるライブラリがることがあるが、基本的に同じコードで動き、書き換えの必要は無い +      * NumPyなど一部のライブラリが使えが、基本的に同じコードで動き、書き換えの必要は無い 
-      * これにより、スクリプト言語では計算量が厳しい問題でも通せたりする+      * これにより、一般的なスクリプト言語では計算量が厳しい問題でも、PyPyなら通せたりする
   * デメリット   * デメリット
     * 遅い     * 遅い
 +      * 高速化のために、あまりアルゴリズムの本筋とは関係ない言語固有の高速化知識が必要になることがある
     * 難しい問題はPythonで挑戦している人が少ないので、参考に出来るコードが無いことが多い     * 難しい問題はPythonで挑戦している人が少ないので、参考に出来るコードが無いことが多い
-      * %%C++%%以外のほとんどの言語に同じ事が言える+      * %%C++%%、Java以外のほとんどの言語に同じ事が言えるかも
     * 他の競技プログラミングサイトでは、AtCoderほどPythonでも通せることに配慮されてない、かも     * 他の競技プログラミングサイトでは、AtCoderほどPythonでも通せることに配慮されてない、かも
 +      * AtCoderでは、特にABCなどでは、遅い言語にも配慮されている感じがする(※個人の感想)
 +      * だからといって別に全ての言語で通せる保証が無いことはきちんと明言されているので、通らなくても文句は言わない
 +    * Pythonの強みである豊富な第三者モジュールがあまり使えないので、自前で実装する必要があることがある
 +
 +競技プログラミングを「競技」として勝ちにこだわるのであれば、最初から %%C++%% やるか、少なくともPythonと平行で %%C++%% などを書けた方がいいだろなあという気はする。
 +
 +Python他の高機能言語も、計算量が問題にならない問題に対しては簡単に素早く書けるというメリットはあるとは思う。
 +従って理想を言うなら両刀使いが強そうだが、言語の切り替え判断が競技中に適切に出来るかというと……まぁ難しいので、基本は高速な言語を優先した方がいい。
 +
 +そうでは無くて、言語の習得がてらとか、元からPythonやってたとかで、敷居低く楽しみながら参加するのであれば、「Pythonでも十分戦えるよ」ということは言えると思う。
  
  
-====Python3ライブラリ・テクニック====+====Python3ライブラリ・テクニック・読み物====
  
   * [[http://tjkendev.github.io/procon-library/|yaketake08's 実装メモ]](yaketake08氏)   * [[http://tjkendev.github.io/procon-library/|yaketake08's 実装メモ]](yaketake08氏)
   * [[https://htkb-procon.hateblo.jp/entry/2019/01/07/211213|AtCoder青になるまで使ったPythonパフォーマンス小ネタ]](htkb氏)   * [[https://htkb-procon.hateblo.jp/entry/2019/01/07/211213|AtCoder青になるまで使ったPythonパフォーマンス小ネタ]](htkb氏)
 +  * [[https://nagiss.hateblo.jp/entry/2019/03/12/012944|Python で AtCoder を遊ぶときに知ってると便利かもしれないこと - 菜]](nagiss氏)
 +  * [[https://qiita.com/Kentaro_okumura/items/a6917572756a2e3c0da9|PythonでAtCoder青になるまで -Pythonで競プロやるときに気をつけること- - Qiita]](okumura氏)
 +  * [[https://maspypy.com/atcoder-%E6%A9%992400%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F#toc8|[AtCoder] 橙(2400+)になりました | maspyのHP]](maspy氏)
  
  
programming_algorithm/contest_history/atcoder.1555341548.txt.gz · 最終更新: 2019/04/15 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0