競技プログラミングにハマるプログラマのスレ 9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
プログラミングコンテスト(プロコン)やオンラインジャッジや競技プログラミング(競プロ)やCTFなどを楽しんでる競技プログラマ(競プロer)の雑談スレ
競プロイベントや競プロ問題や有名競プロerや競プロでよく使うアルゴリズム等について語りあったり、競プロ関連の質問相談なんでもおk
競プロ初心者でググっても解説読んでも分からないことがあったらスレの競プロの先輩方に訊いてみるのも手だよ(分かりやすい解説サイトとか書籍とか教えてくれるかもしれないよ)
次スレは>>950
# オンラインジャッジ・コンテストサイト
## 日本語
yukicoder https://yukicoder.me/
AtCoder https://atcoder.jp/
AIZU ONLINE JUDGE (AOJ) http://judge.u-aizu.ac.jp/onlinejudge/
## 英語
TopCoder
Single Round Match (SRM) 関係リンク集 http://codeforces.com/blog/entry/21879
Marathon Match (MM) https://community.topcoder.com/longcontest/?module=ViewPractice
※TopCoderは初参加までの手順が煩雑です。まずはググってみて、それでも分からなかったらスレで聞こう!
Codeforces http://codeforces.com/
Google Code Jam https://code.google.com/codejam/
Facebook Hacker Cup https://www.facebook.com/hackercup/
CodeChef https://www.codechef.com/
HackerRank https://www.hackerrank.com/
Project Euler http://odz.sakura\.ne.jp/projecteuler/ https://projecteuler.net/
>>2にテンプレ続く >>403
メインはC++だがPythonも巨大な整数や正規表現目的で使うことがある
競プロフォルダを調べたらC++ 8割、Python 2割だった
レートがつかないなら遊びで他の言語を使うこともある >>391
ありがとうございます
codeforcesでタグ表示されるんですね
cs academyははじめてしりました。やってみます
>>392
ほかにも解いてるのですが、文字列系の問題が一番すきなので
ストレス発散目的で解く問題を探してました
>>393
Typical DP Contestはもう解いてしまいました
>>395
Rosalindも知らなかったです
バイオ系は門外漢ですが、あまり問題なさそうですね
ありがとうございます >>403
制限やコーナーケースを抜きにしたプロトタイプをRubyで組んでみることはあるな
それでアルゴリズムに間違いがなさそうであればコンパイル言語で本実装、と >>405
TDPC解けるんなら俺より強いじゃん
偉そうにアドバイスしてしまったぜ AOJのレッスンコース、これアルゴリズムとかも乗ってて結構勉強になるな
ちょっとずつ解いていこう >>408
chokudaiがマラソンマッチを宣伝しまくってたわけだし
chokudaiの影響力がどんだけすごいかってことか TCOマラソンマッチRound2で日本人参加者もっと増やそうぜ
日本の競プロerやプログラマーにマラソンマッチをもっと布教だ C++はBoostが使えて
PythonはAnaconda使えないとかフザケてるよな
こんなC++コンテスト状態を是正しないから競プロが普及しないんだよ >>413
正直それはある
アルゴリズムさえ正しければいいのだから、
せめてスクリプト言語での実行時間制限は緩和して欲しい
まあ負荷とか他の問題があるのか知らんけど ライブラリの関係でC++以外は
競技プログラミングの為のプログラミング色が強くなり過ぎてるね
Pythonなんて競プロで学んだ事を外では殆ど活かせないもん
ライブラリの使い方が全てと言っても良い言語なのに
ほぼ標準ライブラリでアルゴリズム書いても虚しくなるだけ atcoderならたまに言語更新があるからそのときに言えばいろいろ変えられるはず paizaは言語別に時間猶予が変えられているけど
提出コードをジャッジするタイプの普通の競プロのサイトでそういうとこあるんかな >>417
技術力不足で言語別にリミットを設定できないのをそう言って誤魔化している可能性は微レ存? しかし自由型の競泳ではみんなクロールを選択するはずだ AtCoder社に競プロerはいてもエンジニアやデザイナはいない… chokudaiの方針はライブラリはおっけーで時間制限緩和はNG
Anaconda使いたいなら更新するときに言えばよかったんやで 解答は判ってるんだから、対応言語全てで実装してみれば各々どれくらい時間かかるか判るでしょ
社員の暇な奴にそのテストさせればええやん
たまにマイナー言語を必要以上に緩く制限設定しちゃってこの言語抜け穴じゃんって人気誘導したり 一年前C++の実行が最低でも数10msくらいだったのが今では1ms程度で終わってる
これはハードの性能が良くなったから? >>426
一回適当な問題でやってみるといいけどとても難しいぞ
補正があるAOJでPythonで書き換えたら通ることはよくあるし結局不公平になるんだから全部同じでいいのではという意見 >>428
そもそも数十msはかかり過ぎだし測定方法を変えたんじゃね 現実世界のPythonの用途からすると
本来は競プロの問題なんてPythonの大得意分野なんだけどな。
Anacondaありなら同じ制限でもC++より強い可能性すら秘めてるよ。 ある程度まとまった数の問題を解いたうえで言ってるのかな?
atcoderで言ったら具体的にどういう問題を想定してるんだろう >>416
そもそも不満があるやつは競プロ自体下らねぇって辞めちゃうから
集まるのは廃人と、辞めない程度に快適な言語の使い手の意見だけ
自分の言語が競技C++のサンドバッグ担当だと気付いたら誰でも萎えるでしょ >431
Python で競技プログラミングに使えそうなパッケージって、numpy, scipy, scikit-learn の他に、anacondaに何か入っていたっけ?
ざっと見たけど、boostとnetworkxくらいじゃないかな。
boost使うなら、c++使えばいいんだし、netwoekxは、動作が速いとは言えないし。
Google のOR-tools が使えたら便利かもしれないけど、anacondaには入ってないし。
どのパッケージを指しているの? 軽く調べたらSymPyというチート級のライブラリが入ってるな 競プロの世界も多様化してきたのか
保守派ってやっぱりいるんだね 競プロジロンドなフレンズはもっとラジカルにチャレンジをトゥギャザーしようぜ C++でもJavaでも覚えればいいのにPythonに拘るのはなぜ
仕事でもPython on Railsが無いってキレるのか? Java派だけど好きな言語で(満足に)参加できたら嬉しいじゃん?
ということでは
競プロはオンラインゲームであって仕事ではないし 何を保守と思ったのか知らんが、とりあえず
「ローカルのanaconda環境だと自然に書いて間に合うけどatcoder環境だと難しい」
みたいな例がコンスタントに出題されてるんじゃないなら話にならない
そういう例があんまりないのだとしたら、そもそもatcoderが偏ったコンテストをやっているとは言えるんだろうけど、
それは運営も百も承知じゃないかね 競プロはC++の祭典なんだから
雑魚言語は文句言わずに従ってろよ sympy確かに便利そうだけど
保守的な競プロ界ではAnacondaが導入される日は来ないだろう chokudaiはライブラリには寛容だって言ってるじゃん… 不利なら辞めるだけだから
要望してまで残るのは有利な言語の使い手だけという
悪いスパイラルが出来上がってる気がする 最初にAnacondaを導入した所が
Python学習者の需要を総取りだろうね この議論は幾度と無く見たけどそれでも変わらないのは現状が最良解だから (過去スレ,chokudaiのtwilog参照) Programming Problems and Competitions :: HackerRank
https://www.hackerrank.com/environment
HackerRankにはsympyってのあるように見えるけど >>429
競プロ人口増やしたいなら実質C++オンリーみたいな状況はよろしくないと思うけどな 競プロに便利そうなライブラリをぶっこんだdockerファイルを用意して持っていけば検討してくれんじゃね? yukicoderはそうしてくれとyukiさんが言っていたような
Cf, TC, AtCoder, AOJはdockerが無い時代のプロダクトだから無駄 新規導入に環境構築やコマンドラインスイッチとかに苦戦してるようだし
そこらへんも含めて交渉しないとね 技術的にyukicoderしか導入出来ないって事は
見方を変えるとyukicoderが導入してもchokudaiは後追い出来ない訳か 使ったことない人で使う気のない人に環境構築は難しい D言語も一時期バージョンが古くて使い物にならないって
その界隈で文句言われていた時期があったね
あれはバージョンあげれば済む話だけど
今はどうなったか知らないけど有名人が使っているところを見ると
満足に使えるのかな 新規導入や言語バージョンアップにそれに精通した学生をバイトで雇ってやらせるとかすればいいんじゃないだろうかAtCoder Python補正反対派だけど開発バイトを数人雇うべきというのはずっと思ってる
まあまだそんな余裕は無いんだろうなあ >>458
まずは頑張って新規導入しないと
その言語に精通した人が競プロにを持ってくれないという手順前後に見える sympyググってみたけど強力過ぎる
これ導入したらPython一強になってしまうぞ >>453
プログラミング環境を作るのがプログラミングにおける最初の最大の難関 今のところGCJやFHCやProject Eularみたいな結果提出系でしか有用なライブラリ群は使えないだろうね 「boostを導入すると世界が変わる」そう思っていた時代が私にもあった
しかし使われるのはせいぜい多倍長整数 AnacondaはPythonの入門書でも紹介されてるくらいだから
導入したっていいと思うけどね
C++のBoostくらい定番なライブラリなんでしょ ああいうライブラリは実装はC/C++で高速だから
ライブラリ入るなら実行時間の制限は緩くはならないんだろうね 競プロslackのchokudaiが立てたatcoderチャンネルで要望言いまくれば動いてくれるかもよ 標準ライブラリだけでも、Python やPyPyで、AtcoderやYukicoderの問題の、7-8割は解けると思う。
sympyを入れたからと言って、解ける問題は、そんなに増えないと思うのだけど。 chokudaiは優秀だからもう動いてるよきっと
要望されなくても動ける人間だからatcoderが今まで存続してる訳だし ライブラリの良さって
回答コードを見た時の目から鱗の出る感覚だよ
そんな解法あったのかと思うと
もっと勉強しようというモチベーションが高まる
これって結構大事な事だと思う どうせC++優位は変わらないと思うが入れるのはいいと思う
ただ方法は教えないとanacondaがPython環境を壊してホゲーになるので希望者はちゃんと教えてあげてね まだまだプログラミング初心者だから
どの言語が有利とか良く分からん
C++ってそんなに良いものなのか 競技プログラミングという目的には、実行時間制限のためC++などの速い言語が有利というだけ 同じプログラミング言語なのに実行速度ってそんなに変わるの?
不思議だな >>469
解ければ良いなら
ほぼ全ての言語は標準でも構わない訳で・・・
実際の所は本当はどの言語も実使用に近い環境にしてあげたいけど
C++以外の事はよく知らないから
どんな環境にすれば良いのか分からないだけだと思う。 揚げ足取るとさ
時間に間に合ってないなら解けてないんだよな
そのへんから認識の差を感じるわ 情報系の学生と非情報系の学生のプログラミングに対する認識の差? 非情報系の人が競プロ楽しんだっていいじゃん…
情報系だけの遊びにするにはもったいない まあ時間に間に合わなくてもいいなら全部全探索で解けるって言えちゃうしな
でもそれは解けてるとは言えないでしょみたいな 情報系はアルゴリズムやデータ構造とかコンピュータやプログラミング言語の仕組みとかも勉強し、高速なC++が神
非情報系はプログラミング言語は目的を達成するための単なる道具(手段)として使ってる、ライブラリ充実してるPythonが神 個人的なイメージだと真の情報系(もしくは昔の情報系?)は
関数型言語を好んで使いそう どっちもできる上で競技プログラミングではC++を選択しているんじゃないのか… 競プロである特定の言語である程度書けたら
他の言語使ってもそれなりに書けるでしょ 情報系はコンパイラとかプログラミング言語を実習課題で作ったりもするから
プログラミング言語に対する抽象的理解が高くて複数のプログラミング言語の習得が容易(?) 競プロerって殆どが情報系なイメージあるけど違うん? 非情報系に競プロに気軽に参加して貰う為にも
Pythonのライブラリを充実させるのには賛成かな
理系の学者なんかPythonなら使える人多いから
趣味で競プロを始めてくれると解法のレベルも上がりそう >>487
情報系は抽象的な擬似コードとかでアルゴリズムを勉強したりする
非情報系は特定のプログラミング言語の使い方を勉強する 数学オリンピックで優勝したりんごさんの所属は情報系だったの?数学系だったの? >>489
同じく賛成
>>488
機械系ならチラホラ見たような気がする 非情報系だってC++を始めればいいのでは
ちな私は非情報系
結局は怠慢にしか聞こえない ・競プロ人口を増やすには? … 各種言語のライブラリを充実させろ
・競プロで現状勝っていくためには? … C++ を覚えろ div1の上位陣が解いてる問題の性質を知らんのだけど
pythonのsympyというライブラリ使うと有利になるような問題があったりするの? さっきから的はずれなまとめ書いてるのはまた例の灰色の人? プログラミング言語より先に英語の勉強が必要なのでは 人数の少ないレッドコーダーが特定されんならともかく
人数の多い灰色コーダーが特定されるわけねーだろ!! マラソンマッチRound2
Round1に出てない人もRound1で勝てなかった人も参加できるらしいので
積極的にマラソンマッチに参加していこうぜ ■ このスレッドは過去ログ倉庫に格納されています