競技プログラミングにハマるプログラマのスレ
凝り性なんだろう、なんだかヤクの毛刈り状態だな
早く参戦してくるのを待ってるよ >>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)を足す
} ありがとう、条件式がなかなか変わっている
俺のテクニカルメモに加えさせてもらった
尺取法はもっと類題を解かないといけないな
まだ今回含めて2問しかやったことないから
webには尺取法が想定解法の問題は二分探索でも解けることが多いとかいてあった
どちらも修練しないとな リモートワーク制度が削減・廃止されたら「転職や別案件を探す」が4割--
「Offers」登録者調査
ITエンジニア/デザイナーの副業・転職サービス「Offers」を提供するoverflowは、
同社が運営する「Offersデジタル人材総研」にて「リモートワーク実態調査2023」
を公表した。
これによると、リモートワークになり、5人に1人が引っ越したと回答した。そのうち、
現職でリモートワーク制度が削減・廃止された場合、「転職や別案件を探す」という
回答が44.0%にものぼった。一方「会社と交渉する」という回答は40.0%、
「引っ越さず受け入れる」が12.0%となった。
さらにリモートワークを希望している理由として「通勤時間が無駄だと感じている」が
87.7%でトップとなった。このほか「個人の時間ができる」(62.3%)、「副業を続け
やすいから」(39.6%)、「子育てができる」(35.8%)と続いた。 dp問題は初心者にはなかなか解けないな
解けた奴もあるけど簡単めなやつだけ
全く解き方がわからないような問題はdpのことが多い気がする
edpcとかやるべきなのかもしれないけど
目先のabcうめを頑張ろう
今日も元気にTLE。すごくたまにMLE(atcoderの低難度はMLE基準あまり厳しくないよね) コンテスト来るの速いな、もう明日だ
ヤクの毛は準備整ったか? コンテスト来るの速いな、もう明日だ
ヤクの毛は準備整ったか? 初陣で惨敗を覚悟してるのだけど
Atcoderのサイトが満足に開かない
何故だ 初陣で惨敗を覚悟してるのだけど
Atcoderのサイトが満足に開かない
何故だ APG4bをやり始めたのだけど
この提出結果さえ公開されているのに今気づいて
恥ずかしくなりだしたw PFUのコンテスト
Unratedで参加登録しておいた おお、初陣か、頑張れよ
初心者の提出コードなんてそんなに気にされないさ
やっぱ見るのは速いコードや短いコード!
たまに短すぎてわけわからんコードもあるけど そうなのか
Aが解けないとなると基本がまだまだだからC++にもっと慣れないとダメだな
初参戦お疲れ様 今回D問題はABC282dをきっちり復習してたら解けたかもしれない
自分の過去問解答履歴さぐってみたら、二部グラフなんてみたことないからと人の答えを見ただけで満足してた
後でときなおすのと282dも復習しよう ヤクの毛よ、一緒に頑張ろうとは言ったけど
俺は一応中堅大学の情報系院卒なのでスタート地点に差があるかもしれない
だから俺の成績は気にせずマイペースに頑張って欲しい
雲の上だと思ってたけど今回はパフォーマンス700ちょっとだったから頑張っていけば緑も目指せるかもしれない
今回は勝手に認定している茶コーダーのライバルに勝てたよ 実は欲をかいて配点数の多いD問題から見始めた
問題の意味を理解するのに1時間くらいかかってしまった
基本のコードさえ書けないのにね
でも学ぶための原動力は感じれた それは慣れた人のやり方!
まあunratedだから出来るやり方だな
モチベになったなら何よりだ
人のコードみて学んだけどd問題はUnion Findが使えた
長さ2nのUnionFindを初期化して
異なる場合はa (b+n)と(a+n) bを併合して
同じ場合はa bと(a+n) (b+n)を併合(こっちは今回は使わない)
このやり方はwebで検索したら出てきた
最後に(0,n),(1,n+1)...(n,2*n)が同じUnionFindに含まれるか判定して
一つでも同じのがあれば二部グラフではないと判定する
2*n個準備する方法は知ってないと出来ないと思った 問題解いてる?
コンテストが近づいてきた
今回も目標は3問
タイピングは速い方だから早解きでレートを稼ごう
今日はcd問題を2問解いた(全部解説解答コードみてのACだけど) ヤクの毛がやられたようだな…
ククク…奴は初心者四天王の中でも最弱…
ABC328ごときに負けるとは競プロerの面汚しよ… >>133
早く寝てしまった
まぁ自分の状態からしてもまだ戦うには準備不足と前回痛感したことだし。
まず配列宣言を変数で出来るようにならなきゃと。それにはポインタを使いこなせなければならない まだまだ基礎ができていない >>133
早く寝てしまった
まぁ自分の状態からしてもまだ戦うには準備不足と前回痛感したことだし。
まず配列宣言を変数で出来るようにならなきゃと。それにはポインタを使いこなせなければならない まだまだ基礎ができていない 配列よりはvectorの使い方を覚えた方がいいけど
vectorの配列ってパターンもあるから配列は避けて通れないな
俺はあれから鹿本買ったよ
A,B問題レベルの簡単めな問題の解説が140ページ弱ある
毎度例題を解いた後atcoderの問題番号も10問近く載ってるからヤクの毛のレベル帯にはかなりおすすめではある >>139
vectorというのを知らない
勉強します! 1週間は速いな、もう明後日がコンテストだ
配列は覚えたか?
知らない知識は多いと思うが、知ってる知識の組み合わせで出来ることの範囲でコードをかけばいいよ
最初はvectorもないならないでなんとかなる >>142
全然進展なし
でも今度の土曜は参加予定。 そっか、まずはA問題をといて初ACの喜びを味わおう
コンテスト中は普段よりも数倍ジャッジに時間がかかるから注意 今回も3完だった
ライバルは4問解いてた
まだ1度も4問解けたこと無いからこの1問の差はでかい
ヤクはどうだった? 更新してなくて気づいてなかった
初ACおめでとう!
そして伝説は始まる 明日も頑張るぞ
コンテスト中にみる時計を準備したのと
問題考えるときに使うためのノートを100円ショップで買ってきた あれ?ワイ以外にもビギナーがいたのか〜
時計ってブラウザの画面にAtcoderの時計表示あるけど ビギナーといってもいつもの俺だよ
前に水色になってた人とかは別の人だからもしかしたらまだみてるかもな
視力が落ちてきたから
ブラウザの時計小さくて見えにくい 2問目問題文の読み取りが難しかったな
でもすごい簡単な時もあるからガンバレ
aiがl以下のときとr以上の時はmin/maxを使えば良さそうだとサンプルからあたりをつけて
サンプルになかった中間は勘で提出して運良くACした
今回も3完。C問題は苦手なしゃくとり法でといたが何とか解けた 新しい人ようこそ
確か鹿本にサンプルも問題をとくヒントになると書いてあった
分かりにくい問題はサンプルをよく見るのが大事かもしれない B問題
内容を解釈してACするまで今までかかった
できる人は分単位で解くものを自分は日単位で解くw それ単純に脳の障害だから
寒色インコは今すぐ
ママンの閉経汚マンコ経由で子宮戻って
赤ん坊からやり直した方がいいわ
日本人じゃないならゴメン レスするのもif文思考だわ
型も値も同値でないとしずらいね ヤクはその調子でb問題とけるようになるまで頑張れ
b問題でも素早く解ければパフォ400出ることあるからな
変な書き込みはスルーだ C問題にギブアップや
たぶん全探索という方法で試したけれど
どっか抜けているかそもそも間違っているか
解説みてもよくわからんし・・ C問題あたりからアルゴリズムが悪いとTLEになるようになる
TLEなら処理速度が間に合ってない
WAなら間違ってる
REなら配列の範囲外アクセスとかゼロ除算とかが発生してる
どれが出てる?
全探索で解ける問題はdfsとかを使う必要があることが多い
あと、他人の解答コードが見れるのは知ってるか?
解説とともにわかりやすいコードを探して参考にすればいいよ
後はwebでabc330 cとかで検索して別の解説を探すのもいい >>162
sampleデータはACでtestデータにWAがある
独力ではできなかったので公式の解説を理解しようとしているところ。
他の人の回答が見れることは知っているけど解釈しようとすると余計にややこしい
解説にある円の図の意味を突き詰めたい WAなら計算速度は問題ないからどっかミスってる
他人のコードを読むのは解説がないと厳しいときもあるな
俺は短めのコードを主に参考にしてる
x^2+y^2=r^2は原点にある円の方程式で半径がr、高校数学で習う
x,y,dは整数だから、x^2+y^2もx^2+y^2-Dも整数
M=|x^2+y^2-D|=0つまりx^2+y^2=Dのときだけ円周上に点がある
それ以外でMが小さい時は円の周辺の点を表してる
D=1とすると(x,y)=(1,0),(0,1),(-1,0),(0,-1)が円周上にある
D=2とすると(x,y)=(1,1),(1,-1),(-1,1),(-1,-1)が円周上にある
D=3とすると円周上には点はないが(x,y)=(1,1)とか(2,0)とかが円の近くにあると言う感じ
数学は苦手だからあまりうまく解説はできないわ 気にはなっていたのだけど
ただのintじゃだめよってことかも C問題はACしたか?intでダメかどうかは他人のコードみればすぐ分かると思う
long longでほとんどの問題は解けるだろうけど
問題によっては__int128ってのもたまに見る。知っておいてそんは無い >>166
long longでACしたよ
他人のコードってほんまいろいろで自分にぴったりと思えるコードになかなか出会えない そっか
もし参考になりそうなコードを書く人がいたらid覚えておくといいよ
俺はお気に入りの人が何人かいる 3問目が解けなかった。精進が足りない
今回はa問題も若干面倒だったな
今回はレートダウンだわ
b問題は制約をみてn<100だから制約が小さかったので
それぞれ0からs 17パック(102個) m 13パック(104個) l 9パック(108個)
まで試せば答えが出る なんと
てっきり土曜定期だと思って時間調整して用意したのに・・・ なんか今日難しいなBでDPかよと思ったらARCだった ARCの被害者がいるなw
ABC3完。d問題はあまり解いたことが無いタイプだったので別の問題に挑戦したが1つも解けず 2問しかできなかったけど
3問目は解く手順までは行けたように思うから良しとするわ しかしこのままでは言語の習得は進まず
文章読解やアルゴリズムに頭を使っているだけのような感じや ヤクお疲れ様。俺は今回は今までで一番順位が良かった
文章読解はともかくアルゴリズムに頭を使っているというのが一番いい状態では?
言語の文法などはわからないところを都度調べてればいつのまにか覚えるよ ABC330のBの意味がわかるまで時間かかったのは俺だけじゃなかったか 直大のブログ読んでて思ったが148cmの彼女に2D3D問わずロリ画像送られてロリコンに目覚めたとかロリコン雑誌買ったとか書いて大丈夫なのか?
少なくとも3Dは違法じゃね? 駄目だ
2問の途中で萎えた
最初から仕切りなおさなきゃとても先に進めないと実感 長年出てるけどCどころかBすら解けなくなってきてるw 今回B問題は難しかった
正答は出せたけど混乱っぷりが提出ソースコードに現れた B問題は言語によって難易度変わるっていう
D問題の方が簡単だったわ 言語によって難易度変わるかなあ
今回参加してないから勘違いしてるかもしれんけど四則演算でできるんじゃね 整数の除算がfloorの言語(有利。pythonなど)とtruncateの言語(不利。C++など)があったよ ああ0に近い方に丸めるかどうかということか
原点をMから動かしてLを非負にすれば済むことじゃないんか? l,rからaを引くとちょうどmの倍数と比べれば良いが
lを非負にすると基本的にmの倍数とずれるので俺の実装力では細かい処理でつまづきそうな気がする
それよりは解説にあるfloor関数をマイライブラリに追加しておく方が考えることが少なくて楽だと思う
もしうまくいったら教えてくれ 1/11から新春初TechFUL Coding Battle2024があって賞金とかもでるから予定あけとけよ atcoderじゃないのかよ
コドフォとかtopcoderとか色々あるけどみんな複数のコンテストに参加してるのかね あああ
C問題の文意は理解したもののコード化が追い付かない
なかなか進歩しない ヤクお疲れ。俺はABCD4完だった。多分今回で茶色コーダーになる >>196
パーツの位置を保持するのにvectorやqueueを使うとTLEになるから自分で循環バッファを作れるかって問題だろうけど何度か見たことあるな
今回作れるようになれば一つ進歩したことになるぞ >>198 ありがとう!祝ってくれる人がいるとは思わなかった。無事茶色になりました
循環バッファってのがあるのか
俺はn+q個の配列を確保して後ろ側に伸ばしていき、後ろから前に向かってt番目って感じにといた C問題は、頭がN個じゃなくて残像エフェクトだと思うと過去ログを保存すれば良いって実装になるから、末尾追加とランダムアクセス(どちらもvectorで実装できる)で解ける 始まると思ったら今日はないんか
よく見たら明日だったわ D問題解けなかったけどD問題解けてる人少なかったからABC3完でレート微増
後で復習しよう site:go.jp -filetype:pdf 競技プログラミング 基本からってなんか本でも読むのか?ABSをやるとか?
最近モチベ落ち気味
過去問とく集中力がなかなかでない
けど一応今日も参加予定ではある >>209
三週つづけてサボってしまった
Cの本を通読してた
今週はVimに慣れるのと基本構文を空で書けるくらいにコード練習
するつもり。 C++ではなくCなのか
今度はvimなのな。またヤクの毛状態になってるな。
vimも面白いエディタではある。昔vi masterってソフトで練習してたよ 3年前の記事だが、蟻本の著者が競プロや
Kaggle についてインタビューに答えている。
https://liiga.me/columns/761 面白い記事をありがとう
これだけ能力がある人でも勝てるところだけに注力してるのだな 参加登録した
今日もしゃくとり法が火を吹くぜ
いもす法も最近学んだし準備万端 先週はやったことないダイクストラ法が出てきて轟沈
ヤクは最近は参加やめたのか?c言語の本の進捗はどう? もうヤクはスレにも来なくなったか
俺は今日も参加予定
たまにはage 誰かいるかな
マルチコアなら高速化するコードを試しに書いてみたが遅くなった
競プロのシステム的に1提出に1コアで計算させるような感じなんかな
誰か知ってる人いる? > 並列化
> 実行時間は実時間とCPU時間の大きい方で計測されます。並列化は禁止されていませんが、実行時間を短くすることには繋がりません。
https://atcoder.jp/contests/abc352/rules 粒度の細かい並列化になるが、C++ で #pragma を指定して SIMD 命令を明示的に使う公式解説を見たことがある(割と最近)。確か 512 ビットベクトル命令だったかな。 AtCoder の採点環境は知らんが、マルチスレッド化で遅くなったとしたら、物理コア1つに対してハイパースレッディングで論理コアが2つある状況で、スレッド間でパイプラインのリソースの取り合いが発生していたなんてことも考えられるね。 >>219
ありがとうございます。公式に明示してあったのね
>>220
俺も過去問で見たことある。最近じゃなくてかなり前のやつだけど
n=1000でO(n^3)がSIMDだと通せるみたいな話だったような
SIMDは高速化に役立つみたいね