Video není dostupné.
Omlouváme se.
【競技プログラミング】プログラミング初心者がAtCoderを始めて10か月で水色になった方法【ゆっくり解説】
Vložit
- čas přidán 17. 08. 2024
- 10か月間の競プロへの情熱を込め、一週間の精進を捨て35時間以上制作に時間をかけました。誰かの役に立てたらうれしいです。
次こういった動画を作成するのは青色か黄色になれたときなのでチャンネル登録はしなくて結構です、高評価だけしてもらえるとうれしいです。
本動画が10万回再生を突破しました!ありがとうございます!(2024/8/13)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
【タイムスタンプ】
[0章 はじめに]
0:00 はじめに
[1章 AtCoderを始める前のスペック]
0:19 AtCoderを始める前のスペック
[2章 灰色から茶色になるまで]
1:12 茶色になるまでにしたこと①
1:51 茶色になるまでにしたこと②
2:28 茶色になるまでにしたこと③
3:29 茶色になるまでにしたこと④
6:54 茶色になるまでにしたこと⑤
7:36 茶色になるまでにしたこと まとめ
[3章 茶色から緑色になるまで]
8:13 緑色になるまでにしたこと①
9:14 緑色になるまでにしたこと②
10:54 緑色になるまでにしたこと③
11:33 緑色になるまでにしたこと④
12:04 緑色になるまでにしたこと⑤
12:40 緑色になるまでにしたこと まとめ
[4章 緑色から水色になるまで]
13:20 水色になるまでにしたこと①
13:45 水色になるまでにしたこと②
14:35 水色になるまでにしたこと③
15:17 水色になるまでにしたこと④
19:36 水色になるまでにしたこと まとめ
[5章 細かいやったことやってないこと]
[やったこと]
19:55 やったこと
[使用ツール]
20:02 使用ツール①
20:29 使用ツール②
21:35 使用ツール③
22:05 使用ツール④
22:40 使用ツール⑤
22:55 使用ツール⑥
23:15 使用ツール⑦
23:52 使用ツール⑧
24:17 使用ツール⑨(拡張機能)
[拡張機能]
24:21 拡張機能①
24:31 拡張機能②
24:48 拡張機能③
25:12 拡張機能④
25:23 拡張機能⑤
25:38 拡張機能⑥
25:50 拡張機能⑦
26:12 拡張機能⑧
26:22 拡張機能⑨
26:55 使用ツール まとめ
[使用ツール以外]
27:05 やったこと①
27:36 やったこと②
27:58 やったこと③
28:40 やったこと まとめ
[やってないこと]
28:49 やってないこと①
29:41 やってないこと②
30:00 やってないこと③
30:33 やってないこと まとめ
[6章 おわりに]
30:49 おわりに
ーーーーーーーーーーーーーーーーーーーーーーーー
[2章 灰色から茶色になるまで]
・APG4b atcoder.jp/con...
・AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ qiita.com/drke...
・EDPC(DPまとめコンテスト) atcoder.jp/con...
・rng_58がおすすめする練習の仕方 - 茶色になるために info.atcoder.j...
[3章 茶色から緑色になるまで]
・レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】 qiita.com/e869...
・EDPC(DPまとめコンテスト) atcoder.jp/con...
[4章 緑色から水色になるまで]
・レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】 qiita.com/e869...
・典型90問 atcoder.jp/con...
・EDPC(DPまとめコンテスト) atcoder.jp/con...
[5章 細かいやったことやってないこと]
[使用したツール]
・オンライン版Excel www.microsoft....
・メディバンペイント medibangpaint....
・AtCoder Compainons atcoder-compan...
・AtCoder Problems kenkoooo.com/a...
・3D版Desmos www.desmos.com...
・Desmosの記事 qiita.com/sinz...
・snukeさんの正規表現の記事 snuke.hatenabl...
・GRAPH×GRAPH(作成者様に動画で使用する許可の返信を貰えなかったので問題があれば消します) hello-world-49...
[拡張機能] (一切動画で使用する許可を取っていません 問題があれば土下座します)
・Comfortable Atcoder chromewebstore...
・Tampermonkey chromewebstore...
・ac-predictor chuo-u.ac.jp/connect/admission/special/guide/
・AtCoder Easy Test v2 greasyfork.org...
・AtCoder Jump to Submissions from Standings greasyfork.org...
・AtCoder Submission User Colorizer greasyfork.org...
・atcoder-difficulty-display greasyfork.org...
・AtCoderLanguageButtons greasyfork.org...
・AtCoderPerformanceColorizer greasyfork.org...
・AtCoderStandingsAnalysis greasyfork.org...
[やったこと]
・AtCoder Daily Training atcoder.jp/con...
ーーーーーーーーーーーーーーーーーーーー
【動画作成の参考にしたスライド、動画、本】
・スライド speakerdeck.co...
・動画1 • 【AviUtl】線で区切るデザイン | ゆっ...
・動画2 • 【AviUtl動画編集】くだらねぇ情報が映像...
・本「デザイン入門教室 [特別講義]」
【お借りした配布素材】(敬称略)
・うさねこメモリー booth.pm/ja/it...
・KNT graphics:矢神ニーソ kntgraphics.web...
・いらすとや www.irasutoya....
・きつねゆっくり www.nicotalk.co...
・フキダシデザイン fukidesign.com/
【その他素材】
・ACの舞(ご本人様に許可をいただきました www.youtube.co...)
www.youtube.co...
【使用BGM】(Audio Library「映画」多め)
・0章 【著作権フリーBGM】 STEP/軽快/軽やか/ビート/ • 【著作権フリーBGM】 STEP/軽快/軽や...
・1章 「Snowy Peaks pt I」CZcams Audio Library
・2章 「Sweet Math」CZcams Audio Library
・3章 「God Rest Ye Merry Gentlmen」CZcams Audio Library
・4章 「Highway One」CZcams Audio Library
・5章 「Classic Mariachi」CZcams Audio Library
・エンディング 「Happy Birthday Old Timey」CZcams Audio Library
【効果音】
・効果音ラボ soundeffect-la...
【使用フォント】
・ホワイトボードの文字 字幕「源暎エムゴ」
・ホワイトボードの文字 左上のサブタイトル 「源暎ゴシック」
・和風の字幕 「英椎楷書」
・英語の字幕 「Courgette」
・BGM表記 「Teko Semi Bold」
【使用編集ソフト】
・YMM4
ーーーーーーーーーーーーーーーーーーーーー
競プロ界隈にこういう解説流行ってほしい。
ゆずソフトを真似して字幕の左にロゴを入れました。
タイムスタンプ自分用
[灰→茶]
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に参加するようになった者です。
こちらの動画を、競プロの始め方・プログラミング学習の進め方の参考にさせていただいており、とても勉強になります。
素晴らしい動画をありがとうございます。)
ありがとうございます!応援してます!!
せっかく情報系の専攻にしたから自分も始めようと思ってたけど何からやればいいかわからなくて困ってた時に出会ったので感謝しています。
ありがとうございます!応援してます!!
1ヶ月半前にこの動画を見つけ、挫折して離れていた競プロをもう一度頑張ろうと思いました。
紹介されていたツールや茶色までにやったこと等を参考に精進し、ABC356で入茶することが出来ました!ありがとうございます!
特にエクセルに書き込む内容が目からウロコで、AC出来なかった問題のまとめの指針になりました。
今は緑色になるために精選100問をやっています(難しいですね...笑)。動画を投稿してくださって本当にありがとうございます!投稿者さんも入青頑張って下さい!
入茶おめでとうございます!動画が役に立ってくれたようでとてもうれしいです!!精進100問新しい内容が多いし、応用の問題は難易度が高くて難しいですよね...でも絶対にやり遂げれば力になってくれますよ!!応援してます!!
DP問題の攻略ができなくて緑でやめてしまった私が言うのもなんですが、素晴らしい努力ですね。ツールだったり体系化の手法だったり参考にさせてもらいます。ブルアカやってそうなので高評価しました👍今後も頑張ってください!
ありがとうございます!白洲アズサ推しです!ᓀ‸ᓂ
素晴らしい動画をありがとうございます。
3ヶ月前くらいにこちらの動画を参考にさせていただき、先週入茶できました。
(それ以前は無駄なことを結構やっており、助かりました)
今回は「緑になるためにしたこと」を拝見しましたが、Cの精進が大事とか基礎的なアルゴリズムを先に知っとく方が得というのは感じていたことだったので、やるべきことがはっきりした感じがします。感謝です。
私も3ヶ月くらいで入緑を目指したいと思います🟢
入茶おめでとうございます!動画が役に立ったようでとてもうれしいです!!これからも頑張ってください応援してます!!
最近競技プログラミングに興味が出てきたので、こういう動画は非常に助かります!
参考にさせていただきます。
ありがとうございます応援してます!慣れてくるとすごい楽しいですよ!!!!
今日初めて競技プログラミングに参加したのですが、B問題まで解けました。これからこつこつ頑張って、いろんな問題解くぞーーー!!!
お疲れ様です 初めてで今回のB問題解けるのかなりすごいですね!!幾何の問題得意そうでうらやましいです笑
褒めていただき有り難うございます!
情報系の大学で同じような演習があったので、そこまでギャップがなかったのかなと思っています。ビギナーズラックですね...!
入水おめでとうございます!
やったこと、意識したことを非常に詳しく、かつ分かりやすく纏めていて非常に勉強になりました!
やっぱりD, E問題を解いて、知らない考察・アルゴリズムを補完していくの大事ですよね!
ありがとうございます!forループさんの動画めっちゃ好きです!!
情報系の学部入ってるけどプログラミング下手くそなのでこの動画を参考に頑張ります!こんないい動画を投稿してくださりありがとうございます!
こちらこそありがとうございます!応援してます!!
めちゃくちゃいい動画でした。
10ヶ月で水色はめちゃくちゃ凄いですよ!
あと競プロに対する日々の取り組み方が、勉強出来る人のそれだなと感じました。( 17:38 )
ありがとうございます!恐縮です!!
役立つ動画ありがとうございます。06:30 意外でした。私がとある有名大学で働いていますが、Frest さんは私の周りのエンジニアより遥かに有能だと思います。イーサリアムのブロックチェーンとか使えるようになったら可能性が広まると思います。
ありがとうございます!恐縮です...!
入茶したばかりで今後の進め方を迷ってました。参考になりました!!
入茶おめでとうございます!応援してます!!
ローマ字草
他の方もおっしゃってるけど問題量こなしてかつそれをExcelにまとめてるの偉すぎる
私も過去問解かないとなぁ
ありがとうございます!レート上げるなら過去問を解くしかないのだなとよく思います しかし時間もかかるしモチベも低いしで結構大変です(´・ω・`)
知識をつけたらひたすら解く
これが重要なんですね
その通りだと思います!過去問精進してると知らないことだらけで自信に傷が入るところがつらいとこではあります(´・ω・`)
素晴らしい動画だなぁ
ありがとうございます!
改めまして、入水達成おめでとうございます!
水色になるまでにやってきたこと(やってこなかったこと)が網羅的にわかりやすくまとめられており、最近動画を作り始めた身としては構成などの面でも非常にためになるものに感じました。面白かったです!
0:09 などでたまに出てくるローマ字で書かれた文章がつい気になってしまいますw
ありがとうございます!デザイン的な見栄えをよくするためにローマ字を入れましたw
二分探索と尺取り法の動画めちゃくちゃわかりやすくて参考になりました!!
めっちゃ良い動画
ありがとうございます!競プロへの愛と情熱を込めました!
プログラミング初心者から10ヶ月で入水ってめちゃくちゃすごいな...
学習というのかわからんけどどれくらいの学習頻度だったのかが気になる。
ありがとうございます!
自力AC、解説を見て理解してからACなど、種類を問わず合計して一日5ACを目標にやってました!(ほぼ達成できておらず2,3ACの日が多いです)
10年以上やってるけどいまだ水色になれないのでこれ見て頑張ります
10年...!? 古参の方なんですねすごい!応援してます!!
つまり誰でもやればできるって証明、これはスバラ🎉
ありがとうございます!どんな人でも努力さえあれば水色になれることを伝えたくて作りました!
中学二年生でまだ、ある程度、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 アドバイスありがとうございます。やはり、過去問精進はとても効果的なんですね!これからも、頑張りたいと思います。
参考になりました。もともと始めようと思っていたところのでありがたいです。メモ機能でまとめてるそうですが、obsidianでまとめるともっと見やすくなるかもしれません。(知ってたらごめんなさい)
obsidianという存在を初めて知りました!結構使いやすそうですねありがとうございます!!
水色目指してるので参考にさせてもらいます!
ありがとうございます!応援してます!!
これは良い動画!!
勉強するぞい
ありがとうございます!
応援してますぞい!!
水色えぐすぎ
めっちゃ参考になります!!!
ありがとうございます!
プログラミングなんも分からない文系だけど自分もやってみようと思いました
ありがとうございます!snukeさんの解説を全力で信じれば必ず強くなれますよ!
すげぇ。エンジニアだけど競プロのレートってweb系だとほんとにプラスになるから自分もやろ
web系でプラスになるんですか!?初めて知りました競プロすごいですね!!
緑くらいまでいくと、普段のコーディングでやっててよかったなーって思うことありますか?
質問の意図が「仕事などで業務的なコーディングをやっている最中に、競プロをしていてよかったなと思うこと」と「緑になるまで競プロでたくさんコードを書いてみて便利だなと思うテクニック」の二通りに捉えられるのでどっちも回答させていただきます
前者は働いたことがないのでわかりません() 私的な予想だと「タイピングが早くなる」「基礎的な文法が悩まずにすぐ書ける」「エラーが出たときどこが悪いのかがなんとなくわかる(業務と競プロで出会うエラーは種類が違うかもしれませんが)」などを感じるのかなと思います。岩井星人さんのマシュマロで聞いて見ると何か良い回答が貰えるかもしれません (Xのアカウントリンク)x.com/yiwiy9
後者はC++だとマクロを自分で自由に作成できるのがとても便利だなと思います。ABC362-Bの本番でユークリッド距離を求めるときに、「二頂点間の距離を渡せばユークリッド距離を返してくれる」みたいなマクロを用意しておいたおかげで、すぐにコードを書くことができたのでそれが最近の印象に残っています。
この動画を見て最近始めた者です。
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 詳しく教えていただきありがとうございます。とても助かりました。
初めて競技プログラミングで問題やったときは、問題の意味が分からなかったし、解説見ても意味わからなかったなぁ
またチャレンジして頑張ってみようかな
とてもわかります!私も最初の頃は何をしたらいいのかすらわかりませんでした...
私はAtCoderがCZcamsで配信してる解説放送のおかげで理解できるようになったので解説放送を見たら何か変わるかもしれません!!!
いまC言語勉強してるから、復習がてらやろうと思ったら、gccが古いのか知らんが戻り値などを丁寧にセットしないと正解にならないため断念した。pythonはすごいやりやすそうだった
python少し触ってたのでpythonで挑戦してますが、入水はc++あたりに切り替えた方がいいですかね、、?
計算量的な話でC++の方が有利と聞いたことがありますが、maspyさんという方がPythonで赤色になっているみたいなので正直よくわからないです...ただAtCoderでC++を使っている人が多い影響で、解説のコードもC++が多いので私的にはC++をおすすめしたいです!悩ましい場合はevimaさんに聞くのが良いと思います!
プログラミングさっぱりわからんけど楽しそうだな
最初の頃は楽しさが伝わりにくいですが1,2か月続けるとめちゃくちゃ楽しくなりますよ!私も何も知らずに初めて業務のプログラミングはさっぱりですが競プロが最高に楽しいです!
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
めっっちゃ丁寧にありがとうございます😭
参考になりました、頑張りますね!
@@TS-lg5md 応援してます!!!
AtCoderのAPG4bでC++を学習するとき練習問題の他に易しや難しいが出てきますがそれらも全て解いていましたか?
正確には覚えてませんがほぼやってなかった気がします 特に難しい問題は一切やってなかったと思います 動画にもありますが結局過去問の精進で似たような問題を解いて同じことを学ぶのでその人ごとにモチベーションが続く方をおすすめしたいです!
まだ始めたてなのですが、分からない時はどれくらい時間考えてから答えを見るのが良いのでしょうか?
A問題やB問題なら1,2分ぐらいで少し悩んでわからなければすぐに解説を見て良いと思います!(自分はそうしてました)
始めたてのときは配列の使い方やsetやmapなどのデータ構造の使い方、その他細かいテクニックなどを知っているか知っていないかでA,B問題を解けるかどうかが決まると思うので、考察に時間をかけるよりもたくさん問題を解いてたくさんの知識を学ぶのがおすすめです!!
動画大変良かったです!
自分の実力よりちょい上で1回じゃAC出来なかった過去問の取扱いはどうしていますか?
たとえばですが
・しばらく期間を置いてからやる
・何も見ずに速攻でAC出来るまでやり込む
・問題見た瞬間、攻略の要所を言語化できるようにする
など
送っていただいた内容だと「問題見た瞬間、攻略の要所を言語化できるようにする」が一番近いかなと思います!
昔は解けなかった問題を翌日にもう一度解いていましたが、一日に5問解いて全部解けなかったとき、翌日に同じ5問を解くことになって時間やモチベーションがなくなってしまうのでやらなくなりました...
同じ問題を解きなおすのはAtCoderProblemsで問題が視界に入って気になったときくらいで復習のようなことはほとんどしていません 、Excelの紹介の部分で少し説明していますが、わからなかった問題は自分なりに理解できるまで粘ってもう一度わからなくなってもすぐ理解できるように言語化しています。その言語化という行動をしたおかげで復習しなくても頭にある程度入っているのかなと思っています!数か月ぶりに見た問題でも解法がすぐ思い出せることが多いです、ただ解法がわからないこともあって、そのときはExcelで自分のために書いた解説を読んで復習しています
既に解いた問題を何回もやるより新しい問題をたくさん解いて新しいことを学んだ方が効率が良いかな...という感じです!
PS5買ったのと同時にハマってしまって
いまだにPS5箱の中で
かわいそう
緑で停滞してるけど
頑張れるっす
ちなパイソンです
PS5くんかわいそう笑 でもそれくらい競プロおもしろいですよね!水色いけるように応援してます!!
質問失礼いたします…文法を覚えきれずネットやら参考書で調べながら練習問題を解いてるのですが本番は調べるながらやることはありですか?
ありですよ!!私も最初の頃はC++のsetやqueueなどの使い方がわからずAPG4bをよく見てました。ブラウザのブックマークに登録しておくとすぐ出せて便利ですよ!!
@@Frest-ur8gh 返信ありがとうございます。安心しました。大丈夫なんですね!ありがとうございます。頑張ります!
@@kiroooo1525 応援してます!!
解けた問題が塗りつぶされるような設定等はどのようにしたらできますか?
AtCoder Problemsのサイトを開く→左上にある「User ID」に見たい人のAtCoderのアカウントの名前を入れる
で見ることができます!私の解いた問題を見るとしたら、AtCoderのアカウント名を「sinzyousan」にしているので、「User ID」に「sinzyousan」と入れることで見ることができます!
kenkoooo.com/atcoder/#/table/sinzyousan
@@Frest-ur8gh ありがとうございます!頑張ります〜
@@user-lw7se1sw1p 頑張ってください!応援してます!!
授業ではC言語だから、AtCoderで鍛えようと思ったはC++かぁ..ってなった。C++勉強すればCにも役立つかな?
C言語のコードの書き方はC++の書き方と結構似てると思うのでC++をAtCoderで勉強する価値はそれなりにあるかもしれません!C++の方が解説が多いというだけなのでC言語をAtCoderで使うのも良いような気はします。私はC++しか使ったことがないのでなんともいえないですすみません...
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