競技プログラミングにハマるプログラマのスレ
このまま5ch潰れてもいいから一緒にXも閉鎖してくれ これでネットも平和になるしみんなの幸福度も上がるだろ 古いノートパソコンでもC++ のコンパイルが出来るなら問題なしやった >>13 APG4bからやるよ ちゃっちゃっちゃと環境設定済ませてから。 >>17 緑目指して頑張れ 評価は緑でカンストだから >>19 総合スレもガイジスレとは全然雰囲気が違う >>20 気合い入れて集中しないと出来ないことだけはわかった アカウント公開している?みたい。 ここでアカウント公開するわけないよね 愚問でした。 >>22 評価は緑でカンストって言ってるのは別のスレで荒らしてた緑で停滞してるやつの工作だから騙されないようにね どうせID有りにするんだったらワッチョイとかも付けようぜ あっちのスレみたいに緑agerが自演連投してもNG出来るようになるし >>14 を見てみたけど蟻本を読むための前段階の本があるんだな ABC過去問やってみた感じAは確実Bも大体とけるcは半々ぐらいDは一度も解けたこと無い 俺の適正ランクは茶色あたりです? vtuberのきりみんちゃん4年もかけて緑コーダーになったのか 一度灰色まで落ちても続けられる精神力がすごいわ [クライシスアクター」「豊島保養所」←画像検索&拡散! 他スレに丸ごとコピペよろしっく!!! ネットでできる反レプティリアン・反イルミ活動です!!!!! 動画サイトのコメ欄もねらい目だぞ!!!!!!! atcoder過去問といてると本番中に一度ACしたコードを再度提出してる人(速度とかが速くなってる)がいるんだが 速度やメモリ消費量とかもパフォーマンスに影響するの? もうすぐ始まるよー 彼はノートパソコンが手に入ってから始めるのかな 始めたばかりだからまずは茶色を目指すぜ ノートパソコンは手に入れたのだけど環境設定するのに gccとMingwとCygwinの関係がよくわからず調べ中 基本のgccで行きたいのだけど。 ノートパソコンは手に入れたのだけど環境設定するのに gccとMingwとCygwinの関係がよくわからず調べ中 基本のgccで行きたいのだけど。 windowsはよくわからないけどcygwinは今もメンテされてるらしいからcygwinにgccを入れればいいんじゃね visual studioを入れるって手もあるけど atcoderがgcc使ってるからgccのほうがいいだろうね >>33-34 初心者さんなら Code::Blocks の mingw 版がお薦め tdm-gcc も良い >>35-37 ありがとう レスが助かります VSはマシンの性能上厳しいかと思うし できるだけ基本で行きたいので Cygwin入れました 選択はgcc-core 11.4.01 gcc-g++ 11.4.0-1 gdb 12.1-1 バージョンはこんなもんかなという選択です 黒い画面にHelloWorld出たので良し! これが出るだけでもうれしいものです おめっと atcoderのほうのバージョンはすごい新しいよ gccは12.2だよ 来週から参加するの? APG4bを通してから参加しようとおもっているだけど。 そっかーそれじゃまだ先か 俺は一足先にレーティング100になったよ >>38 emacsならvsよりはるかに軽いぞ 昔と違ってほとんどマウスでできるし sakuraエディタ使ってるんだけど 競技プログラミングやってるなら emacsとか使う方がかっこいいよねw そこで選ぶか 入れた Emacs 28.2 慣れるまで時間かかりそう カッコよさで選ぶのは間違っていると思うが emacsは慣れると使いやすいよ 自分好みにカスタマイズしていかないと普通のエディタだよ 俺はライブラリをコマンドとして登録しているよ かっこいいかと思ったらそうでもなかった ジャラジャラいろいろ付いてて頑固だった ツールバーを非表示にしたのに再度開くと非表示になりません 設定ファイルに設定しなきゃ言うこと聞きませんって感じでしょ? 一番お気に入りの機能は2画面に分割して片方でインタプリタを起動して 書いたソースを送り込んで即実行!ってやるやつ でもこれはvimでも出来るようになったらしい 後はC++ならCtrl+x Ctrl+p Ctrl+iで画面全体を適切にインデントしてくれる機能とかかな emacsのmodeにそういう機能が含まれているよ inferiorモードとかいうのがreplが動くほうの画面 まず自分の言語のemacsのモードについて調べてみては そういうモードを起動したら自動的に2画面になるけど Ctrl+x 1(1画面) ctrl+x 2(上下画面) ctrl+x 3(左右画面)は覚えていて損はない 毎回必ず入力するincludeなどのボイラープレートコードをABCDの問題分だけコピーするシェルスクリプトを書いた E以降は多分手に負えないからスルーだ ちょっとずつ環境整備していくぜ APG4bは進んでるかな 今日も21:00からある 俺ははじめてやったとき参加登録をしてなくて アンケートに答える分だけ時間を損したぞ APG4bを第一章だけ読んでいざ実践とBeginnersSelecitionを開いていみたら これは難儀だぞとビビッてしまいました 問題の意味を理解するのさえ出来かねる もしかしたらワイが到達できるレベルってBeginnersSelectionまでじゃなかろうか とても色を求めるのは無理じゃなかろうか と委縮している現状です そうなのけ Beginners Selectionちょっとだけ見てみたけどC問題までのってるのね C問題はBeginner用ではないと個人的には思う Aはほぼ解ける、Bは時間をかけたら解けるぐらいであってほしいところかなあ Cは練習していったら解けるようになるかも 茶色になるにはCが解けるか、A,Bを早解きできるかって感じだと思う 一応目安があるみたい https://qiita.com/masakinihirota/items/d1ffac54e70a1adf084c によると 100点問題は100点以上を10問練習すればだいたい安定する 200点問題は200点以上を20問練習すればだいたい安定する 300点問題は300点以上を40問練習すればだいたい安定する 400点問題は400点以上を80問くらい練習すればー あくまでも数学をやってきた人たちが対象であり、文系であったり数学の土台がゆるかったりすると、この3−5倍の努力が必要です はじまる・・ >>53 はビビって諦める感じだろうか 参加登録の後にレーティングには反映されない形での参加も選べるよ ここは人がほとんどいないから俺と彼と広告しかおらんような マ板のスレは俺ら雑魚には人権がないかのようだ 前回は23:11にはレーティングが更新されてたのに今回は遅いな もう寝よう >>58 諦めてないよ ただまず実際にC++で簡単なコードを書けないとダメじゃないかと思ってる その課題としてスレ読みをC++でやりたいと考えてる それからアルゴリズムに挑戦するべきかなと。 目標は来年4月までに茶色をクリア 諦めて無かったか スレ読みって何? 簡単なコードなら過去問のA問題をやるといいのでは? 俺は解説コードを読みたいがためにC++20とかpython3とかもアドホックに勉強してる 教材は解説コード 素直にそうするわ エディタもお勧めの多いVSCODEでじっくり進める それさえまだ出来ていないのだから横道それちゃいけないね スレ読みとかはその後に示せたらと。 やっぱりワイは素直じゃないな 素直ならVSCode使わずにAtCoderのオンラインエディタでやってるよな マ版スレのほうがレベル高いよね 帰ってもインコだのなんだのいわれるだけ ここは初心者の隔離所みたいなものだから >>63 環境設定はまぁぼちぼちやってくれ 入出力に慣れるためにA問題やるのはいいと思うけど 10問程度やったらもっと難しい問題もやっていかないと上達しないよ 馬鹿ドカタは開発料金の泥棒組織を支援するな↓ 馬鹿だから詐欺被告者より反社会で低知能な奴隷になってくれます。 非婚だから低価格で高稼働の多重派遣奴隷をご用意しております。 レバテック 代表取締役 岩槻 知秀 いわつき ともひで 1980年生まれ。大阪府出身。早稲田大学社会科学部入学後、大学1年時からIT企業にてビジネス経験を積む。 携帯コンテンツ開発会社における2年半のインターン経験後、オープン系システム開発会社の立ち上げに加わり、マネージャーとして活躍。 大学卒業後、レバレジーズ株式会社を設立。 設立5年で売上高20億円を突破。雑誌「ベンチャー通信」のベストベンチャー100に選ばれた実績を誇る。 https://i.imgur.com/SaXuOmM.jpg https://i.imgur.com/BQdJFGg.jpg 演習は進んでいるか? 最初は新しい入出力法が出る度に慌てていたな 過去問D問題解けたと思ったら灰diffだった そんなに甘くはないD問題 >>67 進んでいません 先入れ後出しといいますか スタックを積んでいるといいますか 有言不実を恥じ入ります なんか別のことやってるんかな まあそこは個人の自由だし 俺はアルゴリズムの夢を見るぐらい過去問に取り組んでるよ でも演習量が足りないのかなかなか上達しない 今日もコンテストあるけどキングオブコントも観たい 参加するか迷う 過去問解いてて参加回数が一緒の人を発見。こっそりライバル視 それはあなたのレベルが高いだけではなくて? 俺は緑コーダーからすごい人って認識 それにム板の競プロ総合スレ誰もいないじゃん ム版はレベルが高いかというより人がいない >>69 実はその別のことというのがサーバーを借りるってことでした C++が動くレンサバがあるというのを知っていろいろ調べたり悩んでいました これから古本屋で手に入れた蟻本を最初の部分だけでも読んでみようとしています 実践あるのみなのに本に頼ろうとしているのが駄目だなぁと思いながらですがw >>74 蟻本は難しい部類に入るみたいだから気をつけて。俺もまだ序盤しか読んでないけどdpのページは何度も読み返してる なんか筋が悪いというか、atcoderのオンラインエディタがどうのってのは実行環境がまだなかったからそういう話をしてたのね WindowsならVisual Studio Community editionとかを入れればC++の実行環境は整うよ それですら初心者には少し敷居が高いけどcygwinとかmingwとかでgccを使うほどじゃない 蟻本はマジで難しい方だぞ、オンサイトで黄橙らへんに聞いても全部理解してる人は皆無だったし 7割理解した辺りで黄色になれるレベルの難易度なので、競プロ本の中でも別格 もちろん最初の方を読むだけでも力は相当付くが、先に挫折しないか心配になる 蟻本はバイブルとネットで見たから てっきりAtCodeのバイブルかと思ったら全然ちがってた 当然問題中身は理解できないけど でもパラパラめくってるだけでも自分にとって大事と思えることに気づけた 一番先に問題の最後の"求めよ"文を見るそしてしばらく制約を見て考える それから問題文を最初から読む しかしこれって競技プログラミングに限らず自分の"やりたい"というときにも同じではないか >>72 同意 マ板はポトペタでプログラムしてるようなのばっかり ム板はディスクリートでフルスクラッチよ 7割で黄色、そんなレベルの本だったのか 灰コーダーにはまだはやいかな? 他の本は知らないけどatcoderの過去問もいい教材なので 過去問A-D埋めをまずやる。それが終わったら典型90問をとく予定 今回のD問題は蟻本にのってた区間スケジューリング問題と同じアルゴリズム+tの圧縮が必要だった 後半をやったことがなかったので解けなかったけど プログラミング・コンテスト・チャレンジブック、第2版、2012 表紙に蟻が描かれているので「蟻本」とも呼ばれる ほとんど全てのアルゴリズムを網羅。 問題数も多く、パズル感覚で楽しめる。 AIやシミュレーションゲームの参考になる 言語は、g++用のC++。 初心者は、初級の問題しか解けないと思う。 初級では、動的計画法・ナップサックなど 中級ではネットワークフロー、上級ではグラフも出てくるから、 図を描いて、じっくり考えないと分からない。 何年か掛けて、勉強する本 TopCoder, Google Code Jam(GCJ), PKU OnlineJudge(POJ), 会津大学のAIZU ONLINE JUDGE(AOJ) などから、 3人の大学院生が、よくこれだけ良問を集めたなと感心した セジウィックも読んだけど、 やっぱり蟻本・石畑清・川中真耶など、日本人の本の方がわかりやすい R・セジウィックの20年前のアルゴリズムC++の本を見たら、 2分木の回転については、10行ほどしか載っていなかった。 蟻本にも、2分木の回転・平衡化は載っていない オライリーの「入門 データ構造とアルゴリズム」には、 AVL木の回転について、図入りの説明が載っていた でも赤黒木を詳細に説明した本は無い Linuxのタスクディスパッチで使っているのに >>81 修正 >でも、red-black tree を詳細に説明した本は無い 川中真耶の「アルゴリズムを学ぼう」2013 という本で説明しているみたい red black treeは難しくて真面目に学んだことはないが left leaning red black treeという性質をそのままに回転を半分にした 赤黒木より理解しやすい木があってそっちを覚える方がいいなって思ったことがある llrb treeとかでググると出てくるぞ llrb覚えるくらいならavlの方が良いと思ってたが、そっちの方が良いのか? マ板のほうがレベル低いやつ多いし話通じるんじゃない? レベルといっても 技術レベルとコミュニケーションレベルがあると思われ 一応マ板のスレはROMってます コミュ力はないです 苦節9ヶ月、やっと水色になれた これから ・ベルマンフォード法 ・ワーシャルフロイド法 ・最小全域木 ・ゲーム問題 ・LISなどの高度なDP ・最小共通祖先 ・セグメント木 ・ネットワークフロー を学んで青を目指すぜ! 水色いいなー 目標が具体的だね 少し人が増えてきたのかなこのスレも 俺は今日はいもす法というのを勉強中 水色いいなー 目標が具体的だね 少し人が増えてきたのかなこのスレも 俺は今日はいもす法というのを勉強中 水色になるまでに使った教材 ・鹿本(難しめの演習問題が少し残っている) ・JOI本(全部解けた) ・典型90(★5の半分まで)とその類題(難しめの類題は積み残し) ・EDPC(Pまで、Jは除く) これから使う教材 ・PAST本エントリー〜中級編 → ・PAST本上級〜エキスパート編 調べてみたけど鹿本よさそう、今度買おう 調べてる途中で見つけたけど環境構築で atcoder-cliとonline-judge-toolsというのがあったけどこれも入れた方がいいかもね C++で書かれてる初心者向けの本は、鹿本か鉄則本の二択だね 鹿本は教科書的で、鉄則本は高校数学でいうチャート式的 鹿本のほうが初歩レベルの問題や、考え方の部分のフォローが手厚い一方で、網羅度は少し低かった 鉄則本のほうはたくさんの典型を一通り網羅している一方で、一つ一つの項目に対するフォローは手薄い(例えば、掲載されている類題がそれぞれ1題ずつだけ、など) なので目次や中身を見比べて決めるといいかも もちろん両方買ってもいいんだけどね 独学だと、公式/web解説と人のソースコードだけがたよりだから 解説がよくわからない場合ソースコード読み解けないと辛い だから考え方の部分のフォローが手厚いのは魅力的 >>5 は環境整備終わったか? レンサバでC++やるってことはsshとかでログインしてからコードを書くつもりなんか >>97 えらい遠い安価だなと思ったけど まだ一か月は過ぎてなかったので安心w 正直なところVSCodeの設定を探求中なんです jsonでいろいろな言語に対応できるってのが便利だし 追及する価値あるなと。 これってリアルの対面で教えてもらったらすぐなんだろうけど 調べながらやると時間かかる しかたないけどね C++でCGIはRubyとかPythonと同じようにFTPでいけるだろうと見込んでいる 凝り性なんだろう、なんだかヤクの毛刈り状態だな 早く参戦してくるのを待ってるよ >>98 VSCode の拡張機能のおすすめは、Code Runner で、 右クリックメニューから、選択したコード、またはファイル全体を実行する この設定をチェックしておく Code-runner: File Directory As Cwd Whether to use the directory of the file to be executed as the working directory. そうすると実行時にcd で、そのファイルがある場所へ、カレントディレクトリを移動してから、 例えばRuby なら、ruby "絶対パス/ファイル名.rb" 又は、ruby "絶対パス/tempCodeRunnerFile.rb" で、そのファイルを実行する tempCodeRunnerFile.rb は、Rubyのコード片をコピーした、一時的なファイル 設定項目、executorMap には、多くの言語の実行コマンドが書いてある。 "code-runner.executorMap": { "javascript": "node", "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "python": "python -u", "ruby": "ruby", あとは、VSCodeのスレで聞いて 親切な人だな 俺はemacsだからVSCodeはわからない それより明日もコンテストがあるぞ、環境整備だけで1ヶ月かかっちまうか? 今日はC-D問題レベルで頻出のUnion Findを自分で書く作業をしている >>100 ヤクの毛刈り状態って慣用句があるのね まさにそれだわ >>102 なんだか見限られそうね マラソンするのにスタートラインで片一方の靴だけ履いてうろうろしてる状態だわ もう先輩の背中が霞んでいる >>101 そうコードランナーあればこそのVSCode選択の理由です いろいろできる分設定がややこしいけど。 Wandboxみたいなオンラインコンパイラでも人によっては暖色までいくからな 環境構築は非本質 JavaScript の質問用スレッド vol.125 https://mevius.5ch.net/test/read.cgi/tech/1659855460/933-938 これはUnionFind の問題 漏れも蟻本を見て、Ruby で自作してみようかな? まあ、誰かがモジュールを公開しているだろうが 蟻本のはunion by rankを実装してるけど union by sizeを実装してサイズを取得できるインタフェースを作ったほうが 実用上はお得なのではないかと思う 蟻本のは経路圧縮もしてないからwebでも調べたほうがいいかも 車輪の再発明いいじゃんね 2問しか解けなかったけどまだレーティング低いからレートが上がった 逆元のライブラリを作っておけばE問題も挑めたかもしれないから今度つくろう やっとこさアカウントの新規登録をした! その名も"ヤクの毛" コンテストの参加はまだかかりそうだけど 150日でどこまで行けるかが自分課題。 ヤクの毛w 登録お疲れさま 環境構築ガンバレ 150日だとコンテストに参加できるのは20回ぐらいだな 1回に20ずつアップすれば茶色になれるな 俺は最初の1回は10台のレートしかつかなかったけどそれ以降は順調に増えてる 今日は拡張ユークリッドの互除法で逆元を求めるコードを書いた >>106 蟻本は、木の縮約をしていない 子の追加時に、親がルートではない場合に、 親からルートをたどって、直接ルートに子を追加する 木の高さ・rank は、 2つ木の併合時に、rankが少ない方を、子にする 今、場合分けして図を描いて、論理的な考え落ちがないかチェック中。 頭の体操になる しっかり場合わけできるのはすごいな 俺は出来上がったものを適当に使ってたから 人のコードを参考にしながらUnionFindを書いたよ 実際に使ってみたらバグがあった 1つの集合のサイズを取得するコード rootをたどってサイズを返さないといけないところを そのノードのサイズを返すバグがあったからそこを修正したよ 今日は昨日解けなかった問題を、人のコードと解説を見ながら解いたよ C問題はしゃくとり法だった しゃくとり法は本番思いついていたのだが、不慣れで引数を何にするか迷ってる間に時間切れだった >>110 なんとか法みたいなことはその都度調べるとしても 逆元とかいうような数学の基本的な単語の理解をしていない身とすれば またまたおおきな毛玉に出会ったような気がする 大きな毛玉?ケサランパサランみたいな? 逆元というのはかけると1になる数字のことだよ。 1なら1、2なら1/2、3なら1/3が逆元 つまりa*逆元=1になる たとえば11で割ったあまりの世界では 2*x=1 mod 11の答えは6になる(2*6)mod11==12%11==1 同様に3の逆元、4の逆元、...10の逆元はそれぞれ4 3 9 2 8 7 5 10になる(プログラムで計算した) 尺取法はバグらせやすいアルゴリズムとして有名らしい 尺取り法は書き方を決めておくことがバグらせないコツだと思ってる 私は下記で書いた int ans = 0; for (int l = 0, r = 0;l < N;++ l, r = max(l, r)) { while (r < N && rを加えても条件を満たす) ++ r; ansに[l, r)を足す } read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる