競技プログラミングにハマるプログラマのスレ 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にテンプレ続く >>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で勝てなかった人も参加できるらしいので
積極的にマラソンマッチに参加していこうぜ Pythonに限らずC++が使えるなら
他にどの言語を習得していようとC++が最適解なのは少々歪んでるかもしれない。
ハンデを付けるのは
さじ加減で不公平が生まれるから反対だけど
ライブラリの導入で埋められる差は積極的に埋めてあげた方が
全体のレベルも底上げされるから検討するべきでしょう。 ああ・・・…もっと問題を解く時間が欲しい
もっともっとコード書きたい >>506
>>404 >>74
C++の正規表現はバグってるしAPI使いづらいしでPythonとかの方が優秀 時間制限緩い言語からgcc呼び出して実質c++の時間制限緩和とかいうハックもあってですね 無能実態派遣残業して時間報酬相場下げるな!
【知的財産と契約料金の生涯損害促進者ばかり】
[偽装請負多重派遣搾取業界の従犯SEを追放すべき]
偽装請負多重派遣SEの動機
コミュニケーション障害
コンピュータ趣味
人格障害
文系大卒
低偏差値大卒
情報処理資格非保有者
偽装請負多重派遣SEの迷惑
無償プログラム提供
事前面接
契約外期限遵守
客先指示遵守
知的財産譲渡
中間搾取促進
時間外労働違反
低予備工数見積
残業見積
無料追加
学習不足
裁判苦手
対人障害
健康障害
孤独死
偽装請負多重派遣SEの代償
低収入低技術
非婚離婚
鬱病早死 結局anacondaだと解ける問題ってどれのことなんだ?
今までの書き込みから察するにsympyで鮮やかに解けるagcの問題とかが
すぐに10個位はあげられるんだよな? >495, 514
sympy は、symbolic math のライブラリで、mathematicaみたいな記号代数計算や数式処理が出来るらしい。
pure python で実装されていて速度は遅いはず。
div1下位の私には、使いどころが思い浮かばない。
Anacondaで高速化に使えそうなのは、cythonかな。静的型情報を与えてcコードを生成し高速化するらしい。
自分としては、PyPy(pythonのJITコンパイラ)が使えれば、そこそこ満足。 数値解析やるだけみたいな問題は大きなコンテストじゃまず出ないし、推してる人は競プロをなにか別のものと勘違いしてそう
(yukicoderだとたまに出たりもする) C++は無くてもどうにかなるBoostが当然のように導入されているのに
他言語は必須なライブラリしか導入されない理不尽 akenshoもchokusaiもPythonユーザではなく下手にAnacondaを入れると環境を壊すから、aptで手軽に入るその2つをユーザーに教えられて入れたとかじゃないの?想像だけど 新規を取り込むにはライブラリがあるのは分かりやすい。
本業でC++を使ってる人なんかは
Boostも使えると聞いたら
実際には問題を解くのに必要なかったとしても
安心して競プロを始められるだろうし。 boostを引き合いに出すやついるけどboostを有効に使った提出は見たことないぞ numpyとscipyは使われてるんだから
それを含むAnacondaは競プロでも必須と言えば必須でしょう
ローカルのPythonでこの2つを使いたきゃ
普通はAnacondaを導入するだろうし 特定のライブラリが入ってるからやる/入ってないからやらない、なんて人そんなにいる?
てか自分の好きな環境じゃないと嫌ならGCJとかPEだけやればいいんじゃないのって思ってしまうが ここ以外でAnaconda欲しがってるやつ見たことないし微妙なところでしか主張していないのがそもそもなのでは Pythonで競プロを真面目にしてる奴なんていないし
というかC++以外で真面目に競プロしてる人がいない
tanakhですらHaskell諦めてC++で提出してる有り様 チョクダイ見てる〜?
https://twitter.com/chokudai/status/862533553623412736
Anacondaって全然知らないんだけどPython勢には必要な感じなのかな。どちらにせよアップデートは全部まとめてやるので、要望聞く時に書いてくれると有難いかな。
とりあえず今は拡大のための資金繰りの方を優先してるから、もうちょい先になるよ。ごめんねー。
14:03 - 2017年5月11日 chokudai流石だわ
というかAnacondaの存在すら知らなかったのは斜め上だったけど
こういうフットワークの軽さは素晴らしいね ■ このスレッドは過去ログ倉庫に格納されています