差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
programming_algorithm:contest_history:atcoder [2019/06/11] – ikatakos | programming_algorithm:contest_history:atcoder [2019/11/06] – [PythonでAtCoder] ikatakos | ||
---|---|---|---|
行 22: | 行 22: | ||
* [[https:// | * [[https:// | ||
- | * 過去問を、自身やライバルの AC済み/ | + | * 過去問を、自身やライバルの AC済み/ |
+ | * 自分の解いた問題の難易度に合わせ、次に解けそうな未挑戦の問題を提案してくれる | ||
+ | * ユーザのStreak数、A問題, | ||
* [[https:// | * [[https:// | ||
* 過去問をスコア別に集計、自身やライバルのACしたスコア分布などを一覧できる | * 過去問をスコア別に集計、自身やライバルのACしたスコア分布などを一覧できる | ||
+ | * [[https:// | ||
+ | * 参加したコンテストの順位の時間変動を見られる | ||
* [[https:// | * [[https:// | ||
* 過去問を使って疑似コンテストを行える | * 過去問を使って疑似コンテストを行える | ||
* [[https:// | * [[https:// | ||
* レーティングを使って企業と求職者をマッチング | * レーティングを使って企業と求職者をマッチング | ||
+ | |||
+ | * 拡張 | ||
+ | * [[https:// | ||
+ | * 学習用言語Scratchで解ける(%%C++%%に変換して提出してくれる) | ||
+ | * [[https:// | ||
+ | * 公式ページの参加者やパフォーマンス表示箇所の横に、レーティングに応じた色付きの円を追加 | ||
+ | * [[http:// | ||
+ | * Dropbox上にテストケースが公開されている過去問は、提出詳細ページの各テストケース名の横に入力・出力へのリンクを追加 | ||
=====関連記事===== | =====関連記事===== | ||
行 54: | 行 66: | ||
Pythonはスクリプト言語で、計算速度は速いとは言えない、というか遅い。 | Pythonはスクリプト言語で、計算速度は速いとは言えない、というか遅い。 | ||
- | だが、AtCoderでは1000点~などの高難度の問題でもない限り、きちんと実装すればほとんどの問題は通る。 | + | だが、AtCoderでは1000点~などの高難度の問題でもない限り、きちんと実装すればほとんどの問題は通る。(注: 高難度の問題も多くは通るはず。ただし自分が多くは解けてないので、その割合は知らない) |
この「きちんと実装すれば」がポイントで、逆に言うと %%C++%% などでは多少効率の悪いプログラムを書いても通ってしまうことがあるが、Pythonだとなかなかそうはいかない。 | この「きちんと実装すれば」がポイントで、逆に言うと %%C++%% などでは多少効率の悪いプログラムを書いても通ってしまうことがあるが、Pythonだとなかなかそうはいかない。 | ||
行 67: | 行 79: | ||
* AtCoderでは、PyPyという、Pythonコードを高速に実行する実行時コンパイル言語を使うことができる | * AtCoderでは、PyPyという、Pythonコードを高速に実行する実行時コンパイル言語を使うことができる | ||
* NumPyなど一部のライブラリが使えないが、基本的に同じコードで動き、書き換えの必要は無い | * NumPyなど一部のライブラリが使えないが、基本的に同じコードで動き、書き換えの必要は無い | ||
- | * これにより、スクリプト言語では計算量が厳しい問題でも通せたりする | + | * これにより、一般的なスクリプト言語では計算量が厳しい問題でも、PyPyなら通せたりする |
* デメリット | * デメリット | ||
* 遅い | * 遅い | ||
行 75: | 行 87: | ||
* 他の競技プログラミングサイトでは、AtCoderほどPythonでも通せることに配慮されてない、かも | * 他の競技プログラミングサイトでは、AtCoderほどPythonでも通せることに配慮されてない、かも | ||
* AtCoderでは、特にABCなどでは、遅い言語にも配慮されている感じがする(※個人の感想) | * AtCoderでは、特にABCなどでは、遅い言語にも配慮されている感じがする(※個人の感想) | ||
- | * だからといって、別に全ての言語で通せる保証が無いことはきちんと明言されているので、通らなくても文句は言わない | + | * だからといって別に全ての言語で通せる保証が無いことはきちんと明言されているので、通らなくても文句は言わない |
- | * 豊富な第三者モジュールがあまり使えないので、普通ならモジュール任せに出来るところを、自前で実装する必要があることがある | + | * Pythonの強みである豊富な第三者モジュールがあまり使えないので、自前で実装する必要があることがある |
競技プログラミングを「競技」として勝ちにこだわるのであれば、最初から %%C++%% やるか、少なくともPythonと平行で %%C++%% などを書けた方がいいだろなあという気はする。 | 競技プログラミングを「競技」として勝ちにこだわるのであれば、最初から %%C++%% やるか、少なくともPythonと平行で %%C++%% などを書けた方がいいだろなあという気はする。 | ||
Python他の高機能言語も、計算量が問題にならない問題に対しては簡単に素早く書けるというメリットはあるとは思う。 | Python他の高機能言語も、計算量が問題にならない問題に対しては簡単に素早く書けるというメリットはあるとは思う。 | ||
- | 従って理想を言うなら言語の選択肢は多い方がいいが、その判断が競技中に適切に出来るかというと……まぁ難しいので、基本は高速な言語を優先した方がいい。 | + | 従って理想を言うなら両刀使いが強そうだが、言語の切り替え判断が競技中に適切に出来るかというと……まぁ難しいので、基本は高速な言語を優先した方がいい。 |
そうでは無くて、言語の習得がてらとか、元からPythonやってたとかで、敷居低く楽しみながら参加するのであれば、「Pythonでも十分戦えるよ」ということは言えると思う。 | そうでは無くて、言語の習得がてらとか、元からPythonやってたとかで、敷居低く楽しみながら参加するのであれば、「Pythonでも十分戦えるよ」ということは言えると思う。 | ||
行 90: | 行 102: | ||
* [[http:// | * [[http:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
* [[https:// | * [[https:// | ||