Размер видео: 1280 X 720853 X 480640 X 360
Показать панель управления
Автовоспроизведение
Автоповтор
タイムスタンプ自分用[灰→茶]1:12 APG4b (c++用)1:51 AtCoderに登録したら~精選10問2:28 A・B問題精進 最新~ABC154 3:29 C問題精進 最新~ABC2126:54 EDPC A~E[茶→緑]8:13 C問題精進 最新~ABC2129:14 redcoderが教える~目指せ水色10:54 A問題全埋め(やらなくてよい)11:33 EDPC F~L12:04 蟻本(DFSとDPの理解)[緑→水]13:20 redcoderが教える~目指せ水色13:45 竸プロ典型90問(☆4まで+☆5)14:35 EDPC M~S15:17 D・E問題精進 最新~ABC21218:49 考察20分+実装20分(個人差)[ツール]20:02 AtCoder Problems20:29 Excel21:35 AtCoder Companions22:05 メディバンペイント22:40 Graph x Graph(グラフ描画)22:55 Desmos 3D版(立体描画)23:15 メモ帳(アルゴリズム説明書)23:52 Qiita[拡張機能]24:21 Comfortable AtCoder24:31 ac-predictor24:48 AtCoder Easy Test v225:12 AtCoder Jump to Submissions from Standings25:23 AtCoder Submission User Colorizer25:38 atcoder-difficulty-display25:50 AtcoderLanguageButtons26:12 AtcoderPerformanseColorizer26:22 AtcoderStandingsAnalysis[使用ツール以外]27:05 コードのテンプレ作成27:36 コンテスト本番の動画撮影27:58 AtCoder Daily Training[やってないこと]28:49 競プロ仲間(精神衛生のため)29:41 ChatGPT(競プロに何を求めるか?)30:00 ARC(難易度が高すぎる)[おわりに]31:00 AtCoder Problems精進グラフ(投稿主様へ2024年5月からPythonを学び始め、ABCに参加するようになった者です。こちらの動画を、競プロの始め方・プログラミング学習の進め方の参考にさせていただいており、とても勉強になります。素晴らしい動画をありがとうございます。)
せっかく情報系の専攻にしたから自分も始めようと思ってたけど何からやればいいかわからなくて困ってた時に出会ったので感謝しています。
DP問題の攻略ができなくて緑でやめてしまった私が言うのもなんですが、素晴らしい努力ですね。ツールだったり体系化の手法だったり参考にさせてもらいます。ブルアカやってそうなので高評価しました👍今後も頑張ってください!
ありがとうございます!白洲アズサ推しです!ᓀ‸ᓂ
ローマ字草他の方もおっしゃってるけど問題量こなしてかつそれをExcelにまとめてるの偉すぎる私も過去問解かないとなぁ
入水おめでとうございます!やったこと、意識したことを非常に詳しく、かつ分かりやすく纏めていて非常に勉強になりました!やっぱりD, E問題を解いて、知らない考察・アルゴリズムを補完していくの大事ですよね!
ありがとうございます!forループさんの動画めっちゃ好きです!!
入茶したばかりで今後の進め方を迷ってました。参考になりました!!
入茶おめでとうございます!応援してます!!
最近競技プログラミングに興味が出てきたので、こういう動画は非常に助かります!参考にさせていただきます。
1ヶ月半前にこの動画を見つけ、挫折して離れていた競プロをもう一度頑張ろうと思いました。紹介されていたツールや茶色までにやったこと等を参考に精進し、ABC356で入茶することが出来ました!ありがとうございます!特にエクセルに書き込む内容が目からウロコで、AC出来なかった問題のまとめの指針になりました。今は緑色になるために精選100問をやっています(難しいですね...笑)。動画を投稿してくださって本当にありがとうございます!投稿者さんも入青頑張って下さい!
入茶おめでとうございます!動画が役に立ってくれたようでとてもうれしいです!!精進100問新しい内容が多いし、応用の問題は難易度が高くて難しいですよね...でも絶対にやり遂げれば力になってくれますよ!!応援してます!!
情報系の学部入ってるけどプログラミング下手くそなのでこの動画を参考に頑張ります!こんないい動画を投稿してくださりありがとうございます!
つまり誰でもやればできるって証明、これはスバラ🎉
ありがとうございます!どんな人でも努力さえあれば水色になれることを伝えたくて作りました!
参考になりました。もともと始めようと思っていたところのでありがたいです。メモ機能でまとめてるそうですが、obsidianでまとめるともっと見やすくなるかもしれません。(知ってたらごめんなさい)
今日初めて競技プログラミングに参加したのですが、B問題まで解けました。これからこつこつ頑張って、いろんな問題解くぞーーー!!!
お疲れ様です 初めてで今回のB問題解けるのかなりすごいですね!!幾何の問題得意そうでうらやましいです笑
褒めていただき有り難うございます!情報系の大学で同じような演習があったので、そこまでギャップがなかったのかなと思っています。ビギナーズラックですね...!
めちゃくちゃいい動画でした。10ヶ月で水色はめちゃくちゃ凄いですよ!あと競プロに対する日々の取り組み方が、勉強出来る人のそれだなと感じました。( 17:38 )
めっちゃ良い動画
素晴らしい動画をありがとうございます。3ヶ月前くらいにこちらの動画を参考にさせていただき、先週入茶できました。(それ以前は無駄なことを結構やっており、助かりました)今回は「緑になるためにしたこと」を拝見しましたが、Cの精進が大事とか基礎的なアルゴリズムを先に知っとく方が得というのは感じていたことだったので、やるべきことがはっきりした感じがします。感謝です。私も3ヶ月くらいで入緑を目指したいと思います🟢
入茶おめでとうございます!動画が役に立ったようでとてもうれしいです!!これからも頑張ってください応援してます!!
10年以上やってるけどいまだ水色になれないのでこれ見て頑張ります
知識をつけたらひたすら解くこれが重要なんですね
その通りだと思います!過去問精進してると知らないことだらけで自信に傷が入るところがつらいとこではあります(´・ω・`)
水色えぐすぎめっちゃ参考になります!!!
良動画すぎる。
役立つ動画ありがとうございます。06:30 意外でした。私がとある有名大学で働いていますが、Frest さんは私の周りのエンジニアより遥かに有能だと思います。イーサリアムのブロックチェーンとか使えるようになったら可能性が広まると思います。
改めまして、入水達成おめでとうございます!水色になるまでにやってきたこと(やってこなかったこと)が網羅的にわかりやすくまとめられており、最近動画を作り始めた身としては構成などの面でも非常にためになるものに感じました。面白かったです!0:09 などでたまに出てくるローマ字で書かれた文章がつい気になってしまいますw
ありがとうございます!デザイン的な見栄えをよくするためにローマ字を入れましたw
二分探索と尺取り法の動画めちゃくちゃわかりやすくて参考になりました!!
これは良い動画!!勉強するぞい
水色目指してるので参考にさせてもらいます!
すげぇ。エンジニアだけど競プロのレートってweb系だとほんとにプラスになるから自分もやろ
中学二年生でまだ、ある程度、B問題は解けるくらいの実力なのですが、競技プログラミングの鉄則という本で勉強をしています。動的計画法の途中くらいまで読み終わったんですが、Cが解ける気がしません。あと、高校数学とかが全く分かりません。本と並行してC問題の精進もすべきですか?あと高校数学って水色になるためにどれくらい必要なのでしょうか?ご回答いただけるとありがたいです。
C問題を解けるようになるためには、たくさんC問題の精進をするのが最も効果的です、1,2か月精進してコンテストのパフォーマンスの調子を見てみると自分が一歩ずつ大きな成長をしていることに気づけると思います。解けないということについての話で、「解けない」ということは、解説放送などを見て時間をかけて解法を理解することで「その問題について自力で考察したときにどこまで解法に近づく考察ができて、どこまで考察ができなかったか」ということを把握できると思います。ABC352のC問題を例にすると、「図に書いたり、不変な値(全ての巨人の肩の値は必ず使われる)に気づくと解法がわかるが、その二つに気づけなかった」とするならば、これからの過去問精進やコンテスト本番で・図に表せるものは紙やPCのペイントで必ず図に表してそれで考察することを義務付ける・不変量に気づくなど、自分が気づきにくいと感じる分野をメモ帳にまとめておいて、解法がわからなかったら数分かけてそのメモ帳を全て見てそれらの内容が今解こうとしてる問題に対して一度も考察してないなら考察してみるという感じで「理解できないことがあった→次以降で同じミスをしないように要注意な典型として警戒しておく」ということをするのが良いと思います。他にも、・仮にbit全探索が苦手なら「必ず問題文を見ることを義務付ける」・仮に動的計画法が苦手であるならば、動的計画法に関する情報で、実装方法やよくあるdp配列の持ち方、その遷移方法、コードの書き方、自分が出会ってきた問題のリンクなどを記録しておいて、困ったときに見るなどの内容ごとに様々なアプローチがあるので自分なりに相性の良い方法をその都度考えるのが良いと思います。また、解法で理解できないことがあるなら、完全に理解できるようになるまでとことん時間をかけるというのも大事です。緑diffのようなC問題が適正難易度の人にとって、自分より上の難易度であれば、今は理解せずに強くなってから理解するのが良いと思いますが、適正難易度であるならば理解できるまで粘らないと同じレベル帯の人を追い抜けずに一生停滞することになります。C問題を解けない中で何度も過去問を解いてわからないを繰り返すのはつらいと思いますが、一個ずつ解説放送を見るなどしてしっかり理解していくと絶対に解けるようになる日が来るので頑張ってください!本に関しては直近のABCのC問題を解いてみるとわかりますが、「動的計画法」のようなそれっぽい名前のついたアルゴリズムが出題されることは少ないので本に飽きてきたと思うのなら過去問精進だけするとレートに直結するかもしれません、強くなったら絶対に「競技プログラミングの鉄則」に書かれた内容を使用する機会が訪れると思うので読むメリットも十分にあると思います。高校数学については本などを買って勉強する必要はないと思います。ただこれは「知らなくても良い」というわけではなく「高校数学を使用する問題に出会ったら必要な内容を一個ずつ覚えよう」という意味です(例えば等差数列などは出会ってから理解すれば良いと思います)。自分語りになりますが、私の経歴が訳ありで、高校数学の数1と数Aの最初の部分(3次元方程式の基礎と集合の基礎)だけを学んでいて、それ以外の高校数学のことは学んでいませんでした。その影響でB問題やC問題などに出てくる三角関数やベクトルに関する問題を一切解けないままで水色になりました(二週間ほど前にやっと三角関数を理解しました)。私が1年近くAtCoderの問題を解いた体感、三角関数やベクトルのような高校数学が重要になる問題は数える程度にしか出題されておらず、それらを知らない状態でその問題が出ても、それでレートが落ちるのは一年に一回あるかないかのレベルなので、心の中で割り切ってレートを落ちるのを受け入れるのが良いと思います。(1年近く毎週ABCに必ず出ていましたが、ここ一年間本番で三角関数のコードを書く問題が出たことはないです) ただ、三角関数やベクトルのような数える程度しか出てない問題とは別に、集合という概念が問題文でかなりの頻度で使用されるので、そこは勉強しておいた方が良いかなと思います。逆に言えば集合さえ理解していれば他は知らなくてもいいと思います。次点で理解しておくべきなのはΣという記号だと私は思いますが、これは緑色になって水色になろうとしたときに必要になる知識だと思うので、無視しても良いと思います(Σで表す内容はfor文と意味がほぼ同じなので最大で1時間ほどあれば基礎的な内容は十分に理解できると思います)。おそらく過去問を解いているとベクトルを使って三角形の面積を求めたり、ABC351のE問題のように三角関数を元にした45°回転を行ったりする問題に出会うと思いますが、そういったものは「そういうテンプレートのようなコードがあって、そのコードに値を渡したら正しい答えが出てくる」みたいな認識をして、ライブラリとして保存し、次に必要な機会が来たらコピペできるようにすればよいと思います(私はベクトル系の内容が全てこの認識になっています。今のところそのせいでとんでもない事故が起きたみたいなのは一切ないです)。もし高校数学について何か本を買って勉強したいのならば、E869120さんの「問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本」をおすすめしたいです、上にあげた三角関数や集合の基礎的な内容が書かれていて、基礎的な内容すらわからずに諦める、ということは減ると思います。本を買わなくてもE869120さんが投稿された数学に関する記事に、集合やΣについての説明が載っているので、それをのんびり読んでみても良いと思います。qiita.com/e869120/items/b4a0493aac567c6a7240#2-10-%E9%9B%86%E5%90%88%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B
@@Frest-ur8gh アドバイスありがとうございます。やはり、過去問精進はとても効果的なんですね!これからも、頑張りたいと思います。
プログラミングさっぱりわからんけど楽しそうだな
最初の頃は楽しさが伝わりにくいですが1,2か月続けるとめちゃくちゃ楽しくなりますよ!私も何も知らずに初めて業務のプログラミングはさっぱりですが競プロが最高に楽しいです!
プログラミングなんも分からない文系だけど自分もやってみようと思いました
四年くらい前だけど、高1で初めて半年くらいで緑やっといったところで茶に戻ってガン萎えして挫折した苦い思い出。
初めて競技プログラミングで問題やったときは、問題の意味が分からなかったし、解説見ても意味わからなかったなぁまたチャレンジして頑張ってみようかな
python少し触ってたのでpythonで挑戦してますが、入水はc++あたりに切り替えた方がいいですかね、、?
計算量的な話でC++の方が有利と聞いたことがありますが、maspyさんという方がPythonで赤色になっているみたいなので正直よくわからないです...ただAtCoderでC++を使っている人が多い影響で、解説のコードもC++が多いので私的にはC++をおすすめしたいです!悩ましい場合はevimaさんに聞くのが良いと思います!
プログラミング初心者から10ヶ月で入水ってめちゃくちゃすごいな...学習というのかわからんけどどれくらいの学習頻度だったのかが気になる。
ありがとうございます!自力AC、解説を見て理解してからACなど、種類を問わず合計して一日5ACを目標にやってました!(ほぼ達成できておらず2,3ACの日が多いです)
素晴らしい動画ありがとうございます!質問なのですが、高校数学、大学数学(コンピュータサイエンスに関わる分野)自体の勉強はしましたか?例えば何かの参考書を買って進めたなど、数学自体の勉強はどれくらいしたのかについて聞きたいです!
入水できたとき、数学に関しては中学までは真面目に勉強していて、高校の数学は数I,数Aの最初の部分(3次元方程式の基礎と集合の基礎)だけ勉強した状態でした。正直それまでで学んだ数学の知識が競プロにおいて大きな意味で活躍したことは一切なかったと思います(四則演算や三平方の定理的な競プロで当然のように出てくる話は例外としますが...)。大学に関する勉強は大学に通ったことがないもので何もわからないです(コンピューターの仕組み自体も正直何も知りません)。まとめると高校数学以上の知識はほぼ無に等しいということになります。しかし競プロをしていく上でΣや三角関数のような必ず遭遇する高校数学は勉強しました(Σに関しては緑色辺りで勉強して、三角関数は難しくて入水してからしばらくして理解した記憶があります)。なのでもし茶、緑、水色のどれかを目指しているのであれば、高校数学以上の知識は勉強しなくても水色まではなれると自分が保証できます。ちなみに高校数学がコンテストでもし出てきたときは運が悪かったということで冷えを割り切る覚悟をしていました。上に書いたように入水してから三角関数を勉強しました。そのときは高校の数学の教科書とRUclipsの動画で学んだのですが、行列やベクトル、外積などの勉強をする上でE869120さんの「問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本」という本を購入し、勉強しました。本の説明がかなりわかりやすく、ここ数日のことですが、行列未履修の人間が行列累乗をやっと理解することができました。もし興味があれば本屋に売ってると思うのでちらっと読んでみてください。
@@Frest-ur8ghありがとうございます!高校数学の知識は必須ってわけでもないんですね、、、挙げていただいた本は自分も持っていて読み進めているので、お墨付きいただけて良かったです!w返答ありがとうございました
どうしても分からない問題は頑張って自力で解くか解説見る、どちらを優先した方が良いですか?
ABCの精進のとき、自分ならどうしてもわからない場合は諦めて解説を見ています。ARC,AGCは考察が大事と聞いているので、もし自分が精進するならある程度の時間はかならずかけて、それでもわからなければ解説を見ると思います(ARC,AGCの精進をしたことがないので具体的な粘る時間はわからないです、コンテストの時間に合わせるなら2~3時間か、頭をリセットして考えなおすために1日か、そこらへんになると思います)。ABCであれば自分はすぐに解説を見ます。ABCの解法がわからない原因は「知識不足」「典型考察を忘れていた」のどっちかが多いと思うので、どっちにしろ自力で気づくのは難しいかなと思うので解説をすぐ見ます。正直なところワンチャン解けそうなら飽きるまで粘る。ワンチャンすらない雰囲気ならさっさと諦めて解説を見て理解して、次の問題に行くというのが一番競プロを楽しめるのではないかと思います(無駄に粘りすぎて何の成果も得られないとモチベが一気に消えると思います)。
@ なるほどですね、自分はまだ初めて2ヶ月だからABCしかやらないのですごく参考になります。やはり知識が足りてないから解説見た方がいいですよね、ありがとうございます🙏
B理解できてなくても言った発言で救われました規則性を利用するのとかマップを移動するみたいな問題がすごい苦手なんですけどどうやって勉強されましたか?あと4近傍ってマスを移動する時のdxとdyのリストですかね?
ありがとうございます!4近傍はdxとdyで合っています!規則性を利用する問題は私も苦手分野なのでこれが絶対良い!といった方法を伝えることはできませんが、私は規則性を利用する問題に出会うたびに以下のことを「規則性についてまとめる用」のメモ帳にまとめています。①問題のリンク②解法を要約した文章③解法を思いつくために必要な知識、必要だった考察の流れこのようなことをまとめていて、新しい問題を解いていて、もし規則性を利用しそうだなと思ったときはそのメモ帳を一度見て、過去に使われた解法、知識、考察などから今解いている問題に利用できないかを一度考えています。規則性を利用する問題に出会うことが少ないため、そのメモ帳のおかげでACできた!という問題には今のところ出会えていませんが、規則性を使わない問題で「規則性が解法には使えない」という考察ができているので、そのメモ帳のおかげかわかりませんが少なくとも考察段階で規則性の存在を忘れることはなくなりました。また、D問題などによく出る「問題文に書かれた数式から、その式の変数に入れることのできる値の範囲を求める」のような問題で、そういった問題の系統用に「数式を考察する問題」についてのメモ帳も規則性と同じように用意していて、そのメモ帳のおかげでACできた問題があったので、同じことをすれば規則性に関してもある程度意味があるのではないかと思います。マップを移動する問題については、初見で勉強するには時間がそれなりにかかってしまうかもしれませんが、「bfs」と「dfs」について勉強してみるのが良いと思います。もしマップを移動する問題に苦手意識を感じる原因が「マップを移動するコードのかき方に悩んでしまう」というところから来ているのであれば、bfsとdfsの基礎的な問題で「迷路やグリッドにbfsかdfsを使用する」という問題があるので、それを解いてみたら良い練習になると思います。もしコードのかき方ではなく、考察の段階でわからなかったのであれば、自分がどういうことを考えてどういうことを考えれなかったのかを振り返ってみて足りない点を探し、もし見つかったらそのミスは次回以降ミスしないようにする、というのが良いと思います。あとは規則性の話と同じですが、「マップを移動する系の問題」についてのメモ帳を用意して、よくある解法や、よくあるコードをコピペしてコードを書くときにそこからコピペするのも良いと思います(bfsの書き方を覚えられなかった時代に私は使ってました)迷路をbfsで探索する基礎的な問題を見つけたのでよければ解いてみてください(解説放送が存在していて、簡単なbfsの問題を見つけれませんでした、すみません)bfsというアルゴリズムについての解説記事を調べたり、この問題の解法についての記事を調べたら理解できると思います!(初見だと一日くらい時間をかけるかもしれません)atcoder.jp/contests/abc007/tasks/abc007_3
@@Frest-ur8gh めっっちゃ丁寧にありがとうございます😭参考になりました、頑張りますね!
@@Villand2002 応援してます!!!
動画大変良かったです!自分の実力よりちょい上で1回じゃAC出来なかった過去問の取扱いはどうしていますか?たとえばですが・しばらく期間を置いてからやる・何も見ずに速攻でAC出来るまでやり込む・問題見た瞬間、攻略の要所を言語化できるようにするなど
送っていただいた内容だと「問題見た瞬間、攻略の要所を言語化できるようにする」が一番近いかなと思います!昔は解けなかった問題を翌日にもう一度解いていましたが、一日に5問解いて全部解けなかったとき、翌日に同じ5問を解くことになって時間やモチベーションがなくなってしまうのでやらなくなりました...同じ問題を解きなおすのはAtCoderProblemsで問題が視界に入って気になったときくらいで復習のようなことはほとんどしていません 、Excelの紹介の部分で少し説明していますが、わからなかった問題は自分なりに理解できるまで粘ってもう一度わからなくなってもすぐ理解できるように言語化しています。その言語化という行動をしたおかげで復習しなくても頭にある程度入っているのかなと思っています!数か月ぶりに見た問題でも解法がすぐ思い出せることが多いです、ただ解法がわからないこともあって、そのときはExcelで自分のために書いた解説を読んで復習しています既に解いた問題を何回もやるより新しい問題をたくさん解いて新しいことを学んだ方が効率が良いかな...という感じです!
緑くらいまでいくと、普段のコーディングでやっててよかったなーって思うことありますか?
質問の意図が「仕事などで業務的なコーディングをやっている最中に、競プロをしていてよかったなと思うこと」と「緑になるまで競プロでたくさんコードを書いてみて便利だなと思うテクニック」の二通りに捉えられるのでどっちも回答させていただきます前者は働いたことがないのでわかりません() 私的な予想だと「タイピングが早くなる」「基礎的な文法が悩まずにすぐ書ける」「エラーが出たときどこが悪いのかがなんとなくわかる(業務と競プロで出会うエラーは種類が違うかもしれませんが)」などを感じるのかなと思います。岩井星人さんのマシュマロで聞いて見ると何か良い回答が貰えるかもしれません (Xのアカウントリンク)x.com/yiwiy9後者はC++だとマクロを自分で自由に作成できるのがとても便利だなと思います。ABC362-Bの本番でユークリッド距離を求めるときに、「二頂点間の距離を渡せばユークリッド距離を返してくれる」みたいなマクロを用意しておいたおかげで、すぐにコードを書くことができたのでそれが最近の印象に残っています。
AtCoderのAPG4bでC++を学習するとき練習問題の他に易しや難しいが出てきますがそれらも全て解いていましたか?
正確には覚えてませんがほぼやってなかった気がします 特に難しい問題は一切やってなかったと思います 動画にもありますが結局過去問の精進で似たような問題を解いて同じことを学ぶのでその人ごとにモチベーションが続く方をおすすめしたいです!
この動画を見て最近始めた者です。excelのまとめ方についてですが、何か参考にされたものはありますか?できるだけFrestさんのを参考にまとめたいと思うのですがあまり使い方が分からず...
私がまとめる際、特に参考にしたものはありません。また、Excelの関数機能は1つも使用していません(sumなどの業務に使われそうなやつのことです)。ただ文字や画像を記録していく上での機能は利用しており、文字のサイズや色の変更、画面上部のツールを選択できる場所から「検索」という機能などを利用しています。記入する内容の大まかな流れは決めていて、1行ごとに1問題をまとめるというように利用しています。とある1つの問題をまとめるとして、そのときに書いている内容を順番にご紹介します(動画内でExcelのスクショを貼っておけばもっとわかりやすかったと思います...申し訳ありません)以下の内容は、利用する全てのセルに対して「折り返し」と「上下中央寄せ」、「文字列を左に揃える」という機能を適応しています。(A列やB列などの部分をクリックしてまとめて変更しています、機能の適応ボタンは文字のサイズや色を変える機能の右側にあります)・A列に問題のリンクを貼る(コピペするだけです)。もしリンクに飛びたいときは、「Ctrl」を押したまま文字をクリックするとリンク先に飛べます。・B列に問題のタイトル名を貼る(コピペするだけです)。「MS Pゴシック」のサイズ28に文字が大きくなるやつ(ホーム画面にある「B」というボタン)を適応しています・C列に問題の解法におけるキーワード(DP,二分探索など)や自分が覚えておきたい内容(円環は二倍用意すると一直線として見れる)や自分が起こしてしまったミス(INFの値を超えるような答えが存在したなど)、まだ解決していない疑問(どうやったらDPだと気づけるのか?など)を書いています、つまりぱっと見たときに自分が伝えたいことです。「Calibri」というフォントのサイズ28に文字を大きくする機能を適応しています。また、複数のキーワードなどを書いて置きたいときは、見やすくするためにそのキーワードや内容ごとに色をつけています(変更したい文字を範囲選択して、文字を大きくするボタンの右にある色を変更できそうなボタンから行えます)、基本的に「濃い赤色」「緑色」「水色」の三種類を使用しています(キーワードごとに色で境目を作って見やすくすることが目的なので「この色はこの場合に使う」というのはしていません、自分にとって見やすい色を使用するのがおすすめです)。問題によっては新しく知った内容が多すぎて、そのセルに入りきらない場合もありますが、そのときは諦めて文章を短くしてなんとか1つのセルに収めています(その場合は2行を1つの問題に利用することもあります)。・D列以降には「MS ゴシック」のサイズ11を使用しています。内容は、「初見で問題を見たときに考えたこと」→「正しい解法の自分なりのまとめ(自力ACしたときは別解があれば書いてます、なければ書いてません)」→「解法を自力で思いつくには何が必要だったか?(知識や典型考察など)、もし自力でACできた場合は何が勝因の決めてだったか?」という順番で書いています。問題によって各項目で記述する量が変わるので、セルに書けるだけ書いて、もしいっぱいになったら一個右のセルに続きを書く、ということをしています。また、図で書いた方が理解しやすい場合があるので、ペイントソフトなどのパソコン上で絵を描けるソフトで作成した図を、「Shift + Windows + S」のショートカットキーから行える「画面の一部分を画像としてコピーする」という機能でコピーし、それを貼り付けたいセルをクリックして「Ctrl + V」を押すとその画像を張り付けることができます。以上が私の書いている内容です。長くなってしまったので要約すると「リンク」→「タイトル」→「問題解法のキーワード」→「自分が考えた解法」→「正しい解法」→「どうやったらACできたか?」といった流れです。qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701202/64638980-a1fb-b79d-ac2f-1c3374a70d70.pngqiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701202/80671d1c-d20e-0520-506c-95bfc188e561.pngQiitaの機能をお借りして、画像のリンクを貼っておきます。真面目にまとめていた問題の内容になっています(自分しか見ないものなので文章の自我が強めです)。最近は精進をさぼり気味で画像のように真面目に書くことは少ないです(自分の不正解な考察を記入することをさぼりがちです)、ただ「正しい解法」と「どうやったらその解法が思い浮かぶのか?」というのは必ず記入するようにしています。真面目に記述するとかなり時間がかかってしまいますが、コンテスト本番でキーワード検索するときにその問題がひっかかってくれて考察のヒントになってくれればなと期待しています。何か疑問があればまたご連絡ください
@@Frest-ur8gh 詳しく教えていただきありがとうございます。とても助かりました。
PS5買ったのと同時にハマってしまっていまだにPS5箱の中でかわいそう緑で停滞してるけど頑張れるっすちなパイソンです
まだ始めたてなのですが、分からない時はどれくらい時間考えてから答えを見るのが良いのでしょうか?
A問題やB問題なら1,2分ぐらいで少し悩んでわからなければすぐに解説を見て良いと思います!(自分はそうしてました)始めたてのときは配列の使い方やsetやmapなどのデータ構造の使い方、その他細かいテクニックなどを知っているか知っていないかでA,B問題を解けるかどうかが決まると思うので、考察に時間をかけるよりもたくさん問題を解いてたくさんの知識を学ぶのがおすすめです!!
質問失礼いたします…文法を覚えきれずネットやら参考書で調べながら練習問題を解いてるのですが本番は調べるながらやることはありですか?
ありですよ!!私も最初の頃はC++のsetやqueueなどの使い方がわからずAPG4bをよく見てました。ブラウザのブックマークに登録しておくとすぐ出せて便利ですよ!!
6:07まぁまぁの初心者の場合大体1問のACに何分くらい掛かるんですか?
「まぁまぁ初心者」に当てはまるのが「コンテスト本番でB問題まではだいたいACできてC問題を解けるか解けないか」だとしたとき、私がそれに当てはまるC問題の精進をしていた頃は①5分から10分を図る問題の考察をする②10分までで解法がわからなかったらその時点で終わりにして解説放送を見る。10分までに解法がわかったら時間を延長してコードを書いて切りのいいところまで行い、ACまたは諦めて、その後解説放送を見る③解説放送の説明を理解したらコードを真似して書いて提出してAC、そしてその問題についてExcelでまとめるという感じの流れでやっていて、解法が自力でわからなかった場合は、考察の10分、解説放送のC問題の尺が10分から20分のどこかなことが多く完全に理解するまでに巻き戻したりするので、だいたい30分、コードを書いて提出まで5分、Excelでまとめるのに10分。なので10+30+5+10=55となり、回答は「だいたい55分かかっていた」ということになります。あくまで私のイメージから推測したときのおおよその最大時間が55分ということなので、問題ごとに10分も経たずに考察を諦めることや、解説放送の問題概要の説明の部分を飛ばしたり解法の重要なテクニックの部分だけを見たりすることで、55分よりももっと短くなると思います。私の一日に使える時間が多い影響でこの時間配分でも問題ない、というだけなのでもし私が学生や社会人などであれば、1日の目標の精進量を満たすために上記した内容のように、どこかの時間を削ることになると思われます。もしコンテスト本番に1ACするのに時間がかかるという話であれば、「まぁまぁ初心者」に当てはまる時期の私のコンテスト本番の履歴を眺めたところ、A問題は5分以内、B問題は10分以内、C問題は60分以内、という時間配分が多かったです(その問題にかけた時間を表しています、A問題を0分の開始から5分後に終わったのであれば、B問題は開始から5分後にスタートしてその10分後、つまり開始から15分後にB問題をACしたということです)。
8:12 これやるとレートは下がっちゃうんですか?それとも灰色だとほぼノーダメですか?
その人のレート次第によって上がるか下がるか決まります!このコンテストの0完のパフォーマンスが198なので参加前のレートが198未満ならレートが上がって198より大きいならレートが下がるというイメージです!このシーンの場合だと私の参加前のレートが54で参加後は17上がって71になりました!
@@Frest-ur8gh なるほど、ありがとうございます!解いてないのに上がるって何だか変ですねw
解けた問題が塗りつぶされるような設定等はどのようにしたらできますか?
AtCoder Problemsのサイトを開く→左上にある「User ID」に見たい人のAtCoderのアカウントの名前を入れるで見ることができます!私の解いた問題を見るとしたら、AtCoderのアカウント名を「sinzyousan」にしているので、「User ID」に「sinzyousan」と入れることで見ることができます!kenkoooo.com/atcoder/#/table/sinzyousan
@@Frest-ur8gh ありがとうございます!頑張ります〜
授業ではC言語だから、AtCoderで鍛えようと思ったはC++かぁ..ってなった。C++勉強すればCにも役立つかな?
C言語のコードの書き方はC++の書き方と結構似てると思うのでC++をAtCoderで勉強する価値はそれなりにあるかもしれません!C++の方が解説が多いというだけなのでC言語をAtCoderで使うのも良いような気はします。私はC++しか使ったことがないのでなんともいえないですすみません...
いまC言語勉強してるから、復習がてらやろうと思ったら、gccが古いのか知らんが戻り値などを丁寧にセットしないと正解にならないため断念した。pythonはすごいやりやすそうだった
初めから土台はちゃんとある人で草なんやねん、Pythonは肌が合わない って サムネ詐欺ご苦労さん
素晴らしい動画だなぁ
タイムスタンプ自分用
[灰→茶]
1:12 APG4b (c++用)
1:51 AtCoderに登録したら~精選10問
2:28 A・B問題精進 最新~ABC154
3:29 C問題精進 最新~ABC212
6:54 EDPC A~E
[茶→緑]
8:13 C問題精進 最新~ABC212
9:14 redcoderが教える~目指せ水色
10:54 A問題全埋め(やらなくてよい)
11:33 EDPC F~L
12:04 蟻本(DFSとDPの理解)
[緑→水]
13:20 redcoderが教える~目指せ水色
13:45 竸プロ典型90問(☆4まで+☆5)
14:35 EDPC M~S
15:17 D・E問題精進 最新~ABC212
18:49 考察20分+実装20分(個人差)
[ツール]
20:02 AtCoder Problems
20:29 Excel
21:35 AtCoder Companions
22:05 メディバンペイント
22:40 Graph x Graph(グラフ描画)
22:55 Desmos 3D版(立体描画)
23:15 メモ帳(アルゴリズム説明書)
23:52 Qiita
[拡張機能]
24:21 Comfortable AtCoder
24:31 ac-predictor
24:48 AtCoder Easy Test v2
25:12 AtCoder Jump to Submissions from Standings
25:23 AtCoder Submission User Colorizer
25:38 atcoder-difficulty-display
25:50 AtcoderLanguageButtons
26:12 AtcoderPerformanseColorizer
26:22 AtcoderStandingsAnalysis
[使用ツール以外]
27:05 コードのテンプレ作成
27:36 コンテスト本番の動画撮影
27:58 AtCoder Daily Training
[やってないこと]
28:49 競プロ仲間(精神衛生のため)
29:41 ChatGPT(競プロに何を求めるか?)
30:00 ARC(難易度が高すぎる)
[おわりに]
31:00 AtCoder Problems精進グラフ
(投稿主様へ
2024年5月からPythonを学び始め、ABCに参加するようになった者です。
こちらの動画を、競プロの始め方・プログラミング学習の進め方の参考にさせていただいており、とても勉強になります。
素晴らしい動画をありがとうございます。)
せっかく情報系の専攻にしたから自分も始めようと思ってたけど何からやればいいかわからなくて困ってた時に出会ったので感謝しています。
DP問題の攻略ができなくて緑でやめてしまった私が言うのもなんですが、素晴らしい努力ですね。ツールだったり体系化の手法だったり参考にさせてもらいます。ブルアカやってそうなので高評価しました👍今後も頑張ってください!
ありがとうございます!白洲アズサ推しです!ᓀ‸ᓂ
ローマ字草
他の方もおっしゃってるけど問題量こなしてかつそれをExcelにまとめてるの偉すぎる
私も過去問解かないとなぁ
入水おめでとうございます!
やったこと、意識したことを非常に詳しく、かつ分かりやすく纏めていて非常に勉強になりました!
やっぱりD, E問題を解いて、知らない考察・アルゴリズムを補完していくの大事ですよね!
ありがとうございます!forループさんの動画めっちゃ好きです!!
入茶したばかりで今後の進め方を迷ってました。参考になりました!!
入茶おめでとうございます!応援してます!!
最近競技プログラミングに興味が出てきたので、こういう動画は非常に助かります!
参考にさせていただきます。
1ヶ月半前にこの動画を見つけ、挫折して離れていた競プロをもう一度頑張ろうと思いました。
紹介されていたツールや茶色までにやったこと等を参考に精進し、ABC356で入茶することが出来ました!ありがとうございます!
特にエクセルに書き込む内容が目からウロコで、AC出来なかった問題のまとめの指針になりました。
今は緑色になるために精選100問をやっています(難しいですね...笑)。動画を投稿してくださって本当にありがとうございます!投稿者さんも入青頑張って下さい!
入茶おめでとうございます!動画が役に立ってくれたようでとてもうれしいです!!精進100問新しい内容が多いし、応用の問題は難易度が高くて難しいですよね...でも絶対にやり遂げれば力になってくれますよ!!応援してます!!
情報系の学部入ってるけどプログラミング下手くそなのでこの動画を参考に頑張ります!こんないい動画を投稿してくださりありがとうございます!
つまり誰でもやればできるって証明、これはスバラ🎉
ありがとうございます!どんな人でも努力さえあれば水色になれることを伝えたくて作りました!
参考になりました。もともと始めようと思っていたところのでありがたいです。メモ機能でまとめてるそうですが、obsidianでまとめるともっと見やすくなるかもしれません。(知ってたらごめんなさい)
今日初めて競技プログラミングに参加したのですが、B問題まで解けました。これからこつこつ頑張って、いろんな問題解くぞーーー!!!
お疲れ様です 初めてで今回のB問題解けるのかなりすごいですね!!幾何の問題得意そうでうらやましいです笑
褒めていただき有り難うございます!
情報系の大学で同じような演習があったので、そこまでギャップがなかったのかなと思っています。ビギナーズラックですね...!
めちゃくちゃいい動画でした。
10ヶ月で水色はめちゃくちゃ凄いですよ!
あと競プロに対する日々の取り組み方が、勉強出来る人のそれだなと感じました。( 17:38 )
めっちゃ良い動画
素晴らしい動画をありがとうございます。
3ヶ月前くらいにこちらの動画を参考にさせていただき、先週入茶できました。
(それ以前は無駄なことを結構やっており、助かりました)
今回は「緑になるためにしたこと」を拝見しましたが、Cの精進が大事とか基礎的なアルゴリズムを先に知っとく方が得というのは感じていたことだったので、やるべきことがはっきりした感じがします。感謝です。
私も3ヶ月くらいで入緑を目指したいと思います🟢
入茶おめでとうございます!動画が役に立ったようでとてもうれしいです!!これからも頑張ってください応援してます!!
10年以上やってるけどいまだ水色になれないのでこれ見て頑張ります
知識をつけたらひたすら解く
これが重要なんですね
その通りだと思います!過去問精進してると知らないことだらけで自信に傷が入るところがつらいとこではあります(´・ω・`)
水色えぐすぎ
めっちゃ参考になります!!!
良動画すぎる。
役立つ動画ありがとうございます。06:30 意外でした。私がとある有名大学で働いていますが、Frest さんは私の周りのエンジニアより遥かに有能だと思います。イーサリアムのブロックチェーンとか使えるようになったら可能性が広まると思います。
改めまして、入水達成おめでとうございます!
水色になるまでにやってきたこと(やってこなかったこと)が網羅的にわかりやすくまとめられており、最近動画を作り始めた身としては構成などの面でも非常にためになるものに感じました。面白かったです!
0:09 などでたまに出てくるローマ字で書かれた文章がつい気になってしまいますw
ありがとうございます!デザイン的な見栄えをよくするためにローマ字を入れましたw
二分探索と尺取り法の動画めちゃくちゃわかりやすくて参考になりました!!
これは良い動画!!
勉強するぞい
水色目指してるので参考にさせてもらいます!
すげぇ。エンジニアだけど競プロのレートってweb系だとほんとにプラスになるから自分もやろ
中学二年生でまだ、ある程度、B問題は解けるくらいの実力なのですが、競技プログラミングの鉄則という本で勉強をしています。動的計画法の途中くらいまで読み終わったんですが、Cが解ける気がしません。あと、高校数学とかが全く分かりません。本と並行してC問題の精進もすべきですか?あと高校数学って水色になるためにどれくらい必要なのでしょうか?ご回答いただけるとありがたいです。
C問題を解けるようになるためには、たくさんC問題の精進をするのが最も効果的です、1,2か月精進してコンテストのパフォーマンスの調子を見てみると自分が一歩ずつ大きな成長をしていることに気づけると思います。解けないということについての話で、「解けない」ということは、解説放送などを見て時間をかけて解法を理解することで「その問題について自力で考察したときにどこまで解法に近づく考察ができて、どこまで考察ができなかったか」ということを把握できると思います。ABC352のC問題を例にすると、「図に書いたり、不変な値(全ての巨人の肩の値は必ず使われる)に気づくと解法がわかるが、その二つに気づけなかった」とするならば、これからの過去問精進やコンテスト本番で
・図に表せるものは紙やPCのペイントで必ず図に表してそれで考察することを義務付ける
・不変量に気づくなど、自分が気づきにくいと感じる分野をメモ帳にまとめておいて、解法がわからなかったら数分かけてそのメモ帳を全て見てそれらの内容が今解こうとしてる問題に対して一度も考察してないなら考察してみる
という感じで「理解できないことがあった→次以降で同じミスをしないように要注意な典型として警戒しておく」ということをするのが良いと思います。
他にも、
・仮にbit全探索が苦手なら「必ず問題文を見ることを義務付ける」
・仮に動的計画法が苦手であるならば、動的計画法に関する情報で、実装方法やよくあるdp配列の持ち方、その遷移方法、コードの書き方、自分が出会ってきた問題のリンクなどを記録しておいて、困ったときに見る
などの内容ごとに様々なアプローチがあるので自分なりに相性の良い方法をその都度考えるのが良いと思います。
また、解法で理解できないことがあるなら、完全に理解できるようになるまでとことん時間をかけるというのも大事です。緑diffのようなC問題が適正難易度の人にとって、自分より上の難易度であれば、今は理解せずに強くなってから理解するのが良いと思いますが、適正難易度であるならば理解できるまで粘らないと同じレベル帯の人を追い抜けずに一生停滞することになります。
C問題を解けない中で何度も過去問を解いてわからないを繰り返すのはつらいと思いますが、一個ずつ解説放送を見るなどしてしっかり理解していくと絶対に解けるようになる日が来るので頑張ってください!本に関しては直近のABCのC問題を解いてみるとわかりますが、「動的計画法」のようなそれっぽい名前のついたアルゴリズムが出題されることは少ないので本に飽きてきたと思うのなら過去問精進だけするとレートに直結するかもしれません、強くなったら絶対に「競技プログラミングの鉄則」に書かれた内容を使用する機会が訪れると思うので読むメリットも十分にあると思います。
高校数学については本などを買って勉強する必要はないと思います。ただこれは「知らなくても良い」というわけではなく「高校数学を使用する問題に出会ったら必要な内容を一個ずつ覚えよう」という意味です(例えば等差数列などは出会ってから理解すれば良いと思います)。自分語りになりますが、私の経歴が訳ありで、高校数学の数1と数Aの最初の部分(3次元方程式の基礎と集合の基礎)だけを学んでいて、それ以外の高校数学のことは学んでいませんでした。その影響でB問題やC問題などに出てくる三角関数やベクトルに関する問題を一切解けないままで水色になりました(二週間ほど前にやっと三角関数を理解しました)。私が1年近くAtCoderの問題を解いた体感、三角関数やベクトルのような高校数学が重要になる問題は数える程度にしか出題されておらず、それらを知らない状態でその問題が出ても、それでレートが落ちるのは一年に一回あるかないかのレベルなので、心の中で割り切ってレートを落ちるのを受け入れるのが良いと思います。(1年近く毎週ABCに必ず出ていましたが、ここ一年間本番で三角関数のコードを書く問題が出たことはないです) ただ、三角関数やベクトルのような数える程度しか出てない問題とは別に、集合という概念が問題文でかなりの頻度で使用されるので、そこは勉強しておいた方が良いかなと思います。逆に言えば集合さえ理解していれば他は知らなくてもいいと思います。次点で理解しておくべきなのはΣという記号だと私は思いますが、これは緑色になって水色になろうとしたときに必要になる知識だと思うので、無視しても良いと思います(Σで表す内容はfor文と意味がほぼ同じなので最大で1時間ほどあれば基礎的な内容は十分に理解できると思います)。おそらく過去問を解いているとベクトルを使って三角形の面積を求めたり、ABC351のE問題のように三角関数を元にした45°回転を行ったりする問題に出会うと思いますが、そういったものは「そういうテンプレートのようなコードがあって、そのコードに値を渡したら正しい答えが出てくる」みたいな認識をして、ライブラリとして保存し、次に必要な機会が来たらコピペできるようにすればよいと思います(私はベクトル系の内容が全てこの認識になっています。今のところそのせいでとんでもない事故が起きたみたいなのは一切ないです)。もし高校数学について何か本を買って勉強したいのならば、E869120さんの「問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本」をおすすめしたいです、上にあげた三角関数や集合の基礎的な内容が書かれていて、基礎的な内容すらわからずに諦める、ということは減ると思います。
本を買わなくてもE869120さんが投稿された数学に関する記事に、集合やΣについての説明が載っているので、それをのんびり読んでみても良いと思います。
qiita.com/e869120/items/b4a0493aac567c6a7240#2-10-%E9%9B%86%E5%90%88%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B
@@Frest-ur8gh アドバイスありがとうございます。やはり、過去問精進はとても効果的なんですね!これからも、頑張りたいと思います。
プログラミングさっぱりわからんけど楽しそうだな
最初の頃は楽しさが伝わりにくいですが1,2か月続けるとめちゃくちゃ楽しくなりますよ!私も何も知らずに初めて業務のプログラミングはさっぱりですが競プロが最高に楽しいです!
プログラミングなんも分からない文系だけど自分もやってみようと思いました
四年くらい前だけど、高1で初めて半年くらいで緑やっといったところで茶に戻ってガン萎えして挫折した苦い思い出。
初めて競技プログラミングで問題やったときは、問題の意味が分からなかったし、解説見ても意味わからなかったなぁ
またチャレンジして頑張ってみようかな
python少し触ってたのでpythonで挑戦してますが、入水はc++あたりに切り替えた方がいいですかね、、?
計算量的な話でC++の方が有利と聞いたことがありますが、maspyさんという方がPythonで赤色になっているみたいなので正直よくわからないです...ただAtCoderでC++を使っている人が多い影響で、解説のコードもC++が多いので私的にはC++をおすすめしたいです!悩ましい場合はevimaさんに聞くのが良いと思います!
プログラミング初心者から10ヶ月で入水ってめちゃくちゃすごいな...
学習というのかわからんけどどれくらいの学習頻度だったのかが気になる。
ありがとうございます!
自力AC、解説を見て理解してからACなど、種類を問わず合計して一日5ACを目標にやってました!(ほぼ達成できておらず2,3ACの日が多いです)
素晴らしい動画ありがとうございます!
質問なのですが、高校数学、大学数学(コンピュータサイエンスに関わる分野)自体の勉強はしましたか?
例えば何かの参考書を買って進めたなど、数学自体の勉強はどれくらいしたのかについて聞きたいです!
入水できたとき、数学に関しては中学までは真面目に勉強していて、高校の数学は数I,数Aの最初の部分(3次元方程式の基礎と集合の基礎)だけ勉強した状態でした。
正直それまでで学んだ数学の知識が競プロにおいて大きな意味で活躍したことは一切なかったと思います(四則演算や三平方の定理的な競プロで当然のように出てくる話は例外としますが...)。大学に関する勉強は大学に通ったことがないもので何もわからないです(コンピューターの仕組み自体も正直何も知りません)。
まとめると高校数学以上の知識はほぼ無に等しいということになります。しかし競プロをしていく上でΣや三角関数のような必ず遭遇する高校数学は勉強しました(Σに関しては緑色辺りで勉強して、三角関数は難しくて入水してからしばらくして理解した記憶があります)。なのでもし茶、緑、水色のどれかを目指しているのであれば、高校数学以上の知識は勉強しなくても水色まではなれると自分が保証できます。ちなみに高校数学がコンテストでもし出てきたときは運が悪かったということで冷えを割り切る覚悟をしていました。
上に書いたように入水してから三角関数を勉強しました。そのときは高校の数学の教科書とRUclipsの動画で学んだのですが、行列やベクトル、外積などの勉強をする上でE869120さんの「問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本」という本を購入し、勉強しました。本の説明がかなりわかりやすく、ここ数日のことですが、行列未履修の人間が行列累乗をやっと理解することができました。もし興味があれば本屋に売ってると思うのでちらっと読んでみてください。
@@Frest-ur8gh
ありがとうございます!
高校数学の知識は必須ってわけでもないんですね、、、
挙げていただいた本は自分も持っていて読み進めているので、お墨付きいただけて良かったです!w
返答ありがとうございました
どうしても分からない問題は頑張って自力で解くか解説見る、どちらを優先した方が良いですか?
ABCの精進のとき、自分ならどうしてもわからない場合は諦めて解説を見ています。
ARC,AGCは考察が大事と聞いているので、もし自分が精進するならある程度の時間はかならずかけて、それでもわからなければ解説を見ると思います(ARC,AGCの精進をしたことがないので具体的な粘る時間はわからないです、コンテストの時間に合わせるなら2~3時間か、頭をリセットして考えなおすために1日か、そこらへんになると思います)。
ABCであれば自分はすぐに解説を見ます。ABCの解法がわからない原因は「知識不足」「典型考察を忘れていた」のどっちかが多いと思うので、どっちにしろ自力で気づくのは難しいかなと思うので解説をすぐ見ます。
正直なところワンチャン解けそうなら飽きるまで粘る。ワンチャンすらない雰囲気ならさっさと諦めて解説を見て理解して、次の問題に行くというのが一番競プロを楽しめるのではないかと思います(無駄に粘りすぎて何の成果も得られないとモチベが一気に消えると思います)。
@ なるほどですね、自分はまだ初めて2ヶ月だからABCしかやらないのですごく参考になります。やはり知識が足りてないから解説見た方がいいですよね、ありがとうございます🙏
B理解できてなくても言った発言で救われました
規則性を利用するのとかマップを移動するみたいな問題がすごい苦手なんですけどどうやって勉強されましたか?
あと4近傍ってマスを移動する時のdxとdyのリストですかね?
ありがとうございます!4近傍はdxとdyで合っています!
規則性を利用する問題は私も苦手分野なのでこれが絶対良い!といった方法を伝えることはできませんが、私は規則性を利用する問題に出会うたびに以下のことを「規則性についてまとめる用」のメモ帳にまとめています。
①問題のリンク
②解法を要約した文章
③解法を思いつくために必要な知識、必要だった考察の流れ
このようなことをまとめていて、新しい問題を解いていて、もし規則性を利用しそうだなと思ったときはそのメモ帳を一度見て、過去に使われた解法、知識、考察などから今解いている問題に利用できないかを一度考えています。規則性を利用する問題に出会うことが少ないため、そのメモ帳のおかげでACできた!という問題には今のところ出会えていませんが、規則性を使わない問題で「規則性が解法には使えない」という考察ができているので、そのメモ帳のおかげかわかりませんが少なくとも考察段階で規則性の存在を忘れることはなくなりました。また、D問題などによく出る「問題文に書かれた数式から、その式の変数に入れることのできる値の範囲を求める」のような問題で、そういった問題の系統用に「数式を考察する問題」についてのメモ帳も規則性と同じように用意していて、そのメモ帳のおかげでACできた問題があったので、同じことをすれば規則性に関してもある程度意味があるのではないかと思います。
マップを移動する問題については、初見で勉強するには時間がそれなりにかかってしまうかもしれませんが、「bfs」と「dfs」について勉強してみるのが良いと思います。もしマップを移動する問題に苦手意識を感じる原因が「マップを移動するコードのかき方に悩んでしまう」というところから来ているのであれば、bfsとdfsの基礎的な問題で「迷路やグリッドにbfsかdfsを使用する」という問題があるので、それを解いてみたら良い練習になると思います。もしコードのかき方ではなく、考察の段階でわからなかったのであれば、自分がどういうことを考えてどういうことを考えれなかったのかを振り返ってみて足りない点を探し、もし見つかったらそのミスは次回以降ミスしないようにする、というのが良いと思います。あとは規則性の話と同じですが、「マップを移動する系の問題」についてのメモ帳を用意して、よくある解法や、よくあるコードをコピペしてコードを書くときにそこからコピペするのも良いと思います(bfsの書き方を覚えられなかった時代に私は使ってました)
迷路をbfsで探索する基礎的な問題を見つけたのでよければ解いてみてください(解説放送が存在していて、簡単なbfsの問題を見つけれませんでした、すみません)
bfsというアルゴリズムについての解説記事を調べたり、この問題の解法についての記事を調べたら理解できると思います!(初見だと一日くらい時間をかけるかもしれません)
atcoder.jp/contests/abc007/tasks/abc007_3
@@Frest-ur8gh
めっっちゃ丁寧にありがとうございます😭
参考になりました、頑張りますね!
@@Villand2002 応援してます!!!
動画大変良かったです!
自分の実力よりちょい上で1回じゃAC出来なかった過去問の取扱いはどうしていますか?
たとえばですが
・しばらく期間を置いてからやる
・何も見ずに速攻でAC出来るまでやり込む
・問題見た瞬間、攻略の要所を言語化できるようにする
など
送っていただいた内容だと「問題見た瞬間、攻略の要所を言語化できるようにする」が一番近いかなと思います!
昔は解けなかった問題を翌日にもう一度解いていましたが、一日に5問解いて全部解けなかったとき、翌日に同じ5問を解くことになって時間やモチベーションがなくなってしまうのでやらなくなりました...
同じ問題を解きなおすのはAtCoderProblemsで問題が視界に入って気になったときくらいで復習のようなことはほとんどしていません 、Excelの紹介の部分で少し説明していますが、わからなかった問題は自分なりに理解できるまで粘ってもう一度わからなくなってもすぐ理解できるように言語化しています。その言語化という行動をしたおかげで復習しなくても頭にある程度入っているのかなと思っています!数か月ぶりに見た問題でも解法がすぐ思い出せることが多いです、ただ解法がわからないこともあって、そのときはExcelで自分のために書いた解説を読んで復習しています
既に解いた問題を何回もやるより新しい問題をたくさん解いて新しいことを学んだ方が効率が良いかな...という感じです!
緑くらいまでいくと、普段のコーディングでやっててよかったなーって思うことありますか?
質問の意図が「仕事などで業務的なコーディングをやっている最中に、競プロをしていてよかったなと思うこと」と「緑になるまで競プロでたくさんコードを書いてみて便利だなと思うテクニック」の二通りに捉えられるのでどっちも回答させていただきます
前者は働いたことがないのでわかりません() 私的な予想だと「タイピングが早くなる」「基礎的な文法が悩まずにすぐ書ける」「エラーが出たときどこが悪いのかがなんとなくわかる(業務と競プロで出会うエラーは種類が違うかもしれませんが)」などを感じるのかなと思います。岩井星人さんのマシュマロで聞いて見ると何か良い回答が貰えるかもしれません (Xのアカウントリンク)x.com/yiwiy9
後者はC++だとマクロを自分で自由に作成できるのがとても便利だなと思います。ABC362-Bの本番でユークリッド距離を求めるときに、「二頂点間の距離を渡せばユークリッド距離を返してくれる」みたいなマクロを用意しておいたおかげで、すぐにコードを書くことができたのでそれが最近の印象に残っています。
AtCoderのAPG4bでC++を学習するとき練習問題の他に易しや難しいが出てきますがそれらも全て解いていましたか?
正確には覚えてませんがほぼやってなかった気がします 特に難しい問題は一切やってなかったと思います 動画にもありますが結局過去問の精進で似たような問題を解いて同じことを学ぶのでその人ごとにモチベーションが続く方をおすすめしたいです!
この動画を見て最近始めた者です。
excelのまとめ方についてですが、何か参考にされたものはありますか?
できるだけFrestさんのを参考にまとめたいと思うのですがあまり使い方が分からず...
私がまとめる際、特に参考にしたものはありません。また、Excelの関数機能は1つも使用していません(sumなどの業務に使われそうなやつのことです)。ただ文字や画像を記録していく上での機能は利用しており、文字のサイズや色の変更、画面上部のツールを選択できる場所から「検索」という機能などを利用しています。
記入する内容の大まかな流れは決めていて、1行ごとに1問題をまとめるというように利用しています。とある1つの問題をまとめるとして、そのときに書いている内容を順番にご紹介します(動画内でExcelのスクショを貼っておけばもっとわかりやすかったと思います...申し訳ありません)
以下の内容は、利用する全てのセルに対して「折り返し」と「上下中央寄せ」、「文字列を左に揃える」という機能を適応しています。(A列やB列などの部分をクリックしてまとめて変更しています、機能の適応ボタンは文字のサイズや色を変える機能の右側にあります)
・A列に問題のリンクを貼る(コピペするだけです)。もしリンクに飛びたいときは、「Ctrl」を押したまま文字をクリックするとリンク先に飛べます。
・B列に問題のタイトル名を貼る(コピペするだけです)。「MS Pゴシック」のサイズ28に文字が大きくなるやつ(ホーム画面にある「B」というボタン)を適応しています
・C列に問題の解法におけるキーワード(DP,二分探索など)や自分が覚えておきたい内容(円環は二倍用意すると一直線として見れる)や自分が起こしてしまったミス(INFの値を超えるような答えが存在したなど)、まだ解決していない疑問(どうやったらDPだと気づけるのか?など)を書いています、つまりぱっと見たときに自分が伝えたいことです。「Calibri」というフォントのサイズ28に文字を大きくする機能を適応しています。また、複数のキーワードなどを書いて置きたいときは、見やすくするためにそのキーワードや内容ごとに色をつけています(変更したい文字を範囲選択して、文字を大きくするボタンの右にある色を変更できそうなボタンから行えます)、基本的に「濃い赤色」「緑色」「水色」の三種類を使用しています(キーワードごとに色で境目を作って見やすくすることが目的なので「この色はこの場合に使う」というのはしていません、自分にとって見やすい色を使用するのがおすすめです)。問題によっては新しく知った内容が多すぎて、そのセルに入りきらない場合もありますが、そのときは諦めて文章を短くしてなんとか1つのセルに収めています(その場合は2行を1つの問題に利用することもあります)。
・D列以降には「MS ゴシック」のサイズ11を使用しています。内容は、「初見で問題を見たときに考えたこと」→「正しい解法の自分なりのまとめ(自力ACしたときは別解があれば書いてます、なければ書いてません)」→「解法を自力で思いつくには何が必要だったか?(知識や典型考察など)、もし自力でACできた場合は何が勝因の決めてだったか?」という順番で書いています。問題によって各項目で記述する量が変わるので、セルに書けるだけ書いて、もしいっぱいになったら一個右のセルに続きを書く、ということをしています。また、図で書いた方が理解しやすい場合があるので、ペイントソフトなどのパソコン上で絵を描けるソフトで作成した図を、「Shift + Windows + S」のショートカットキーから行える「画面の一部分を画像としてコピーする」という機能でコピーし、それを貼り付けたいセルをクリックして「Ctrl + V」を押すとその画像を張り付けることができます。
以上が私の書いている内容です。長くなってしまったので要約すると「リンク」→「タイトル」→「問題解法のキーワード」→「自分が考えた解法」→「正しい解法」→「どうやったらACできたか?」といった流れです。
qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701202/64638980-a1fb-b79d-ac2f-1c3374a70d70.png
qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3701202/80671d1c-d20e-0520-506c-95bfc188e561.png
Qiitaの機能をお借りして、画像のリンクを貼っておきます。真面目にまとめていた問題の内容になっています(自分しか見ないものなので文章の自我が強めです)。最近は精進をさぼり気味で画像のように真面目に書くことは少ないです(自分の不正解な考察を記入することをさぼりがちです)、ただ「正しい解法」と「どうやったらその解法が思い浮かぶのか?」というのは必ず記入するようにしています。真面目に記述するとかなり時間がかかってしまいますが、コンテスト本番でキーワード検索するときにその問題がひっかかってくれて考察のヒントになってくれればなと期待しています。
何か疑問があればまたご連絡ください
@@Frest-ur8gh 詳しく教えていただきありがとうございます。とても助かりました。
PS5買ったのと同時にハマってしまって
いまだにPS5箱の中で
かわいそう
緑で停滞してるけど
頑張れるっす
ちなパイソンです
まだ始めたてなのですが、分からない時はどれくらい時間考えてから答えを見るのが良いのでしょうか?
A問題やB問題なら1,2分ぐらいで少し悩んでわからなければすぐに解説を見て良いと思います!(自分はそうしてました)
始めたてのときは配列の使い方やsetやmapなどのデータ構造の使い方、その他細かいテクニックなどを知っているか知っていないかでA,B問題を解けるかどうかが決まると思うので、考察に時間をかけるよりもたくさん問題を解いてたくさんの知識を学ぶのがおすすめです!!
質問失礼いたします…文法を覚えきれずネットやら参考書で調べながら練習問題を解いてるのですが本番は調べるながらやることはありですか?
ありですよ!!私も最初の頃はC++のsetやqueueなどの使い方がわからずAPG4bをよく見てました。ブラウザのブックマークに登録しておくとすぐ出せて便利ですよ!!
6:07
まぁまぁの初心者の場合大体1問のACに何分くらい掛かるんですか?
「まぁまぁ初心者」に当てはまるのが「コンテスト本番でB問題まではだいたいACできてC問題を解けるか解けないか」だとしたとき、私がそれに当てはまるC問題の精進をしていた頃は
①5分から10分を図る問題の考察をする
②10分までで解法がわからなかったらその時点で終わりにして解説放送を見る。10分までに解法がわかったら時間を延長してコードを書いて切りのいいところまで行い、ACまたは諦めて、その後解説放送を見る
③解説放送の説明を理解したらコードを真似して書いて提出してAC、そしてその問題についてExcelでまとめる
という感じの流れでやっていて、解法が自力でわからなかった場合は、考察の10分、解説放送のC問題の尺が10分から20分のどこかなことが多く完全に理解するまでに巻き戻したりするので、だいたい30分、コードを書いて提出まで5分、Excelでまとめるのに10分。
なので10+30+5+10=55となり、回答は「だいたい55分かかっていた」ということになります。あくまで私のイメージから推測したときのおおよその最大時間が55分ということなので、問題ごとに10分も経たずに考察を諦めることや、解説放送の問題概要の説明の部分を飛ばしたり解法の重要なテクニックの部分だけを見たりすることで、55分よりももっと短くなると思います。私の一日に使える時間が多い影響でこの時間配分でも問題ない、というだけなのでもし私が学生や社会人などであれば、1日の目標の精進量を満たすために上記した内容のように、どこかの時間を削ることになると思われます。
もしコンテスト本番に1ACするのに時間がかかるという話であれば、「まぁまぁ初心者」に当てはまる時期の私のコンテスト本番の履歴を眺めたところ、A問題は5分以内、B問題は10分以内、C問題は60分以内、という時間配分が多かったです(その問題にかけた時間を表しています、A問題を0分の開始から5分後に終わったのであれば、B問題は開始から5分後にスタートしてその10分後、つまり開始から15分後にB問題をACしたということです)。
8:12
これやるとレートは下がっちゃうんですか?それとも灰色だとほぼノーダメですか?
その人のレート次第によって上がるか下がるか決まります!
このコンテストの0完のパフォーマンスが198なので参加前のレートが198未満ならレートが上がって198より大きいならレートが下がるというイメージです!このシーンの場合だと私の参加前のレートが54で参加後は17上がって71になりました!
@@Frest-ur8gh
なるほど、ありがとうございます!
解いてないのに上がるって何だか変ですねw
解けた問題が塗りつぶされるような設定等はどのようにしたらできますか?
AtCoder Problemsのサイトを開く→左上にある「User ID」に見たい人のAtCoderのアカウントの名前を入れる
で見ることができます!私の解いた問題を見るとしたら、AtCoderのアカウント名を「sinzyousan」にしているので、「User ID」に「sinzyousan」と入れることで見ることができます!
kenkoooo.com/atcoder/#/table/sinzyousan
@@Frest-ur8gh ありがとうございます!頑張ります〜
授業ではC言語だから、AtCoderで鍛えようと思ったはC++かぁ..ってなった。C++勉強すればCにも役立つかな?
C言語のコードの書き方はC++の書き方と結構似てると思うのでC++をAtCoderで勉強する価値はそれなりにあるかもしれません!C++の方が解説が多いというだけなのでC言語をAtCoderで使うのも良いような気はします。私はC++しか使ったことがないのでなんともいえないですすみません...
いまC言語勉強してるから、復習がてらやろうと思ったら、gccが古いのか知らんが戻り値などを丁寧にセットしないと正解にならないため断念した。pythonはすごいやりやすそうだった
初めから土台はちゃんとある人で草
なんやねん、Pythonは肌が合わない って サムネ詐欺ご苦労さん
素晴らしい動画だなぁ