並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 114件

新着順 人気順

競プロの検索結果1 - 40 件 / 114件

  • 中年プログラマの競プロ事始 - hydrakecat’s blog

    これはなに 自分がここ2年ほど趣味として競技プログラミングをやった経緯と感想です。いわゆるプログラマの定年と呼ばれる35歳を過ぎてから始めたのですが、思ったよりも楽しめました。自分のようなシニアと呼ばれるプログラマが競プロに興味を持ってくれたらいいなと思って書きました。 競技プログラミング(競プロ)とは 競技プログラミング(以後、競プロ)は、プログラミングをして順位を競うコンテストです。コンテストはたいていオンラインで毎週のように開かれており、誰でも参加できます。形式としては、与えられた時間内にいくつかの問題を解くコードを提出して、その正解数と提出までにかかった時間を競うというものです。たいていは、コードの実行時間および使用メモリに制限があり、その制限内で実行できるコードを書く必要があります。またコードが正解かどうかは出題者が用意したテストケースをパスするかどうかで判定されます。 多くのコ

      中年プログラマの競プロ事始 - hydrakecat’s blog
    • 数学得意じゃない系の社会人エンジニアに競プロとAtCoderを全力で布教したい。あるいは競プロのよくある誤解と楽しむコツ - Qiita

      Help us understand the problem. What is going on with this article? このエントリはCompetitive Programming (1) Advent Calendar 2019 4日目のエントリで、バーチャル幼女プログラマーきりみんちゃんが書いています。 きりみんちゃんはVTuberとしてAtCoderの過去問を解く配信をしたりしています。 競プロ、しっていますか? さて、みなさんは競技プログラミング/プログラミングコンテストというものをご存知でしょうか。 かなり昔から行われているものではあるので、存在は知っているという方が多いかもしれません。 競技プログラミングをざっくり説明すると、期待される入力と出力が定義された問題が出題され、それをコーディングによって解き用意された自動テストを通すまでの速度などを競うコンテストです

        数学得意じゃない系の社会人エンジニアに競プロとAtCoderを全力で布教したい。あるいは競プロのよくある誤解と楽しむコツ - Qiita
      • 40代で競プロができるのかという話 - 競プロ始めました-kaede2020-

        0.はじめに 1.簡単な自己紹介 2.年をとるにつれて衰える能力 3.低下した記憶力で競プロに取り組む 4.AtCoderのレベル感 5.競プロ上達への道のり 6.競プロとの向き合い方 7.競プロの依存性 8.競プロのコミュニティ 7.これから 8.終わりに 9.<番外編>もし後悔があるとすれば 0.はじめに こんにちは。競技プログラミング歴一年半のかえでです。 私はAtCoder Problems でLongest Streak にチャレンジしています。Longest Streakは、これまで解いたことのない問題から一日一問以上解いた連続日数を競うものです。今日、この記録が500日に到達しました。私は解説ACもするので、純粋に自分の力で解いた問題ばかりではありません。それでも、こつこつと続けてきた自分を、ほめてもよいのではないかという気持ちになりました。 ここまで長く続けられたのは、At

          40代で競プロができるのかという話 - 競プロ始めました-kaede2020-
        • 35歳で競プロを始めて橙になるまでにやったこと - Kiri8128の日記

          35歳から Python で競プロを始めて2年が経ちましたが、やっと AtCoder で橙になることができました! ふぁぼ、コメントもたくさん頂きありがとうございました。 競プロを始めて2年、なんとか橙になることができました。 pic.twitter.com/r0GwrNogHi — きり (@kiri8128) October 31, 2020 RTA 途中経過 最初のRatedから青まで:3か月(Rated 7回) 青から黄色まで:7か月(Rated 17回) 黄色から橙まで:1年3か月(Rated 24回) ----- 橙はだいぶ遠い存在という印象だったので、達成できて嬉しいです。 まだまだ上を目指していきたいと思いますが、ひとまずの区切りとしてこれまでにやったことなどを書いておきます。 スペック 某京都大学というところで9年ほど *1 数学(代数学・代数幾何学)などをやっていた *

            35歳で競プロを始めて橙になるまでにやったこと - Kiri8128の日記
          • AtCoder高橋社長がLINEのコーディング試験を見て驚いた理由―。「競プロとこんなに違うとは……」

            ITエンジニア志望者にとって、時に「避けては通れない道」となるコーディング選考。実際に人気企業では、どのような試験や採点が行われるのだろうか。今回はLINE株式会社の協力の下、外資就活ドットコムの会員が参加(*1)する模擬コーディング試験を開催。LINEが実際の選考で出すような問題を、参加者に解いてもらった。 その解答内容を題材に、LINEの新卒採用でコーディング試験を担当する大澤和宏さんと、特別ゲストのAtCoder高橋直大社長の対談を実施。2人の言葉から、「良い解答」「そうでない解答」の差、そしてコーディング選考と競技プログラミングの違いなどが見えてくる。【藤崎竜介】 *1 AtCoderで中級者とされる茶色もしくは緑色レベル、かつ2024年卒業予定の学生を対象に参加者を募集(AtCoderのランクについては、公式ページで詳細を確認できる) 〈Profile〉 写真左/高橋直大(たかは

              AtCoder高橋社長がLINEのコーディング試験を見て驚いた理由―。「競プロとこんなに違うとは……」
            • 競技プログラミングに関係する数学の整理 ~文系出身や数学苦手erが、もっと競プロを楽しむために~ - テルの競プロメモ

              まえがき この記事の目的 意図する対象読者 今回の整理の仕方(記事の見方) 注意 競プロに関係する数学(本題) 言葉(文系でも多分聞いたことはある)編 言葉(文系だと聞いたことないかも)編 言葉(離散数学)編 「式変形」編 「図形っぽいやつ」編 筆者のバックグラウンド 経歴、仕事など まえがき この記事では、競技プログラミングに関係する数学用語・概念と、それがどんな単元(分野)に属するものかを整理(一覧化)します。 競技プログラミングの問題に出てくる用語・概念をはじめ、競技プログラミングの解説記事などに出てくる用語・概念も、思いつく限り挙げています。 「この記事の数学的な部分、どのぐらい信用できるの?」とか、「数学苦手と言ってもどのくらい苦手なの?」といった疑問への参考としては、筆者のバックグラウンドを記事の最後で紹介したので、気になる方は先にそちらを読んでください。 この記事の目的 文系

                競技プログラミングに関係する数学の整理 ~文系出身や数学苦手erが、もっと競プロを楽しむために~ - テルの競プロメモ
              • 【競プロ】新人SEがAtCoderを始めて水色になった【色変記事】 - Qiita

                AtCoderで水色になりました。いわゆる色変記事です。 本記事では以下の4点について書きます。 競プロをしていて良かったこと・できるようになったこと 勉強したこと・改善案 レート推移や目標ラインの話 環境やマクロの紹介 最初に自己紹介すると、自分は情報系出身のSEで、現在は2年目です。 今年の頭に競プロをはじめ、先日水色になりました。 「プログラミング未経験から~」「50歳を超えて~」みたいな少数派ではないですし、「たったN回で達成!」「M年の苦闘の末に」みたいなドラマもありません。 普通に勉強しているエンジニアが競プロを半年間そこそこ頑張ったみたいな記事です。 バッググラウンドや参加回数については③で詳しく書きます。 なお、競技プログラミングについてザックリ知っている前提で書きます。 「競プロってなに?」「水色ってどのあたりなの?」という場合は が良くまとまっています。 ① 競プロをし

                  【競プロ】新人SEがAtCoderを始めて水色になった【色変記事】 - Qiita
                • 【競プロ】Python使いがRustを「完全に理解する」までのTips - Qiita

                  2023年AtCoder言語アップデートにより、Rustの環境は大きく変化しました。そのため、本記事はフリーズさせ、後日、2023年版に対応した記事を新規作成したいと思います。 筆者は、競プロのアルゴはPythonを使いつつ、マラソンはRustを使っております。前者は発想を短時間にコードにすることを重視し、後者はコーディングに時間をかけてでも高速性を確保したいからです。 その際、Pythonでできたアレを、Rustでどう書くんだっけ、と悩むことが多く、悩んだ結果を自分メモを兼ねてTipsにすることにしました。競プロに出てくるパターンを多く収録していますが、競プロ目的以外でも参考になるかと思います。とりありず、ざっと記述してみましたが、そのうち増やしたり、章立てを変えたりするかも知れません。 なお、参照がーとかトレイトがーとか、Rustそのものの入門には言及していませんので、適宜、別の記事や

                    【競プロ】Python使いがRustを「完全に理解する」までのTips - Qiita
                  • レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】 - Qiita

                    このように、競技プログラミングはコーディングの正確性が問われるコンテストです。 どんな問題が出されるか(2) 競プロは正確性だけではありません。例えば、以下の問題を考えてみてください。 $N$ 枚のカードが一列に並べられています。 左から $i$ 番目のカードには、整数 $A_i$ が書かれています。 あなたは $N$ 枚のカードの中から $2$ 枚同時に選び、取ることができます。取った $2$ 枚に書かれた整数の合計がちょうど $101$ となるような、カードの選び方の通り数を求めてください。 テストデータの制約:$1 \leq N \leq 10^{6}, 1 \leq A_i \leq 10^{9}$ 一番最初に考えられる解法は、以下のように「何枚目と何枚目を選ぶか全探索する」という方法だと思います。つまり、$1 \leq i < j \leq N$ を満たすすべての $(i, j)

                      レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】 - Qiita
                    • Kaggleや競プロのトップランカーが持つ「本質的な強み」とは。リクルートが作り出す、競技と業務の好循環 - はてなニュース

                      ソフトウェアエンジニアがプログラミングの腕を競い合う競技プログラミングや、データサイエンティストや機械学習エンジニアが機械学習モデルの精度を競い合うKaggle。こうしたコンペティションのトップランカーが持つテクニックやスキルを実際の業務にも活かそうとしている、あるいはすでに活かしている企業も少なくないでしょう。 一方で、その能力を最大限活かして仕事に取り組めるかには課題も残っているようです。「競技のトップランカー」の肩書きに引きずられるためか、彼らの強みを活かすためには起用範囲を絞らざるをえない、という悩みも方々から聞こえてきます。 そんな中、リクルートではトップランカーのスキルや技術だけでなく、「本質的な強み」に着目。その「本質的な強み」を、領域を横断してさまざまなプロジェクトに活用することで、事業課題の解決やサービス価値の向上につなげています。 トップランカーの「本質的な強み」とは、

                        Kaggleや競プロのトップランカーが持つ「本質的な強み」とは。リクルートが作り出す、競技と業務の好循環 - はてなニュース
                      • 大実験!ChatGPTは競プロの問題を解けるのか (2024年5月版) - E869120's Blog

                        1. はじめに 2024 年 5 月 14 日、OpenAI 社から新たな生成 AI「GPT-4o」が発表され、世界に大きな衝撃を与えました。これまでの GPT-4 よりも性能を向上させただけでなく1、音声や画像のリアルタイム処理も実現し、さらに応答速度が大幅に速くなりました。「ついにシンギュラリティが来てしまったか」「まるで SF の世界を生きているような感覚だ」という感想も見受けられました。 しかし、いくら生成 AI とはいえ、競技プログラミングの問題を解くのは非常に難しいです。なぜなら競技プログラミングでは、問題文を理解する能力、プログラムを実装する能力だけでなく、より速く答えを求められる解法 (アルゴリズム) を考える能力も要求されるからです。もし ChatGPT が競技プログラミングを出来るようになれば他のあらゆるタスクをこなせるだろう、と考える人もいます。 それでは、現代最強の

                          大実験!ChatGPTは競プロの問題を解けるのか (2024年5月版) - E869120's Blog
                        • 【AtCoder】Pythonで競プロをするときの注意点まとめ【競技プログラミング】 - Qiita

                          これは何? 競技プログラミングをPythonでやるときに注意すべき点をまとめました。 言語選択編 PythonがAtCoderには5種類ある AtCoderにはPythonの処理系が5つ入っています。具体的には Python (CPython 3.11.4) Python (Mambaforge / CPython 3.10.10) Python (PyPy 3.10-v7.3.12) Python (Cython 0.29.34) SageMath (SageMath 9.5) の5つです。それぞれ特徴があります。 Python (CPython 3.11.4) 一番オーソドックスなPythonです。 一般に(競プロ界隈でなく)Pythonというときはこれを指すと思います。 Python (Mambaforge / CPython 3.10.10) mambaforge経由で導入されたp

                            【AtCoder】Pythonで競プロをするときの注意点まとめ【競技プログラミング】 - Qiita
                          • レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】 - Qiita

                            ※ ダイクストラ法・ワーシャルフロイド法は最短経路問題を解くアルゴリズムです。 ※ クラスカル法は最小全域木問題を解くアルゴリズムです。 それらのアルゴリズムが学習できる記事たちなどを紹介します。 全探索 全探索には、「全列挙」「ビット全探索」「順列全探索」「再帰関数を用いた全探索」など多くの種類に分かれます。しかし、基本的に以下の記事を読めば全部理解できます。 全列挙 たのしい探索アルゴリズムの世界【前編:全探索、bit全探索から半分全列挙まで】 の 2 章 その他の全探索 たのしい探索アルゴリズムの世界【前編:全探索、bit全探索から半分全列挙まで】 の 3 章 二分探索 アルゴリズムの代表例ともいわれる二分探索は、以下の 2 記事で解説されています。 二分探索とは:アルゴリズムを勉強するなら二分探索から始めよう! 『なっとく!アルゴリズム』より 競プロで使える二分探索:二分探索アルゴ

                              レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】 - Qiita
                            • Pythonで競プロをしよう!〜入門者が知っておくべきTips〜

                              こんにちは、Finatextグループのナウキャストでデータエンジニアをしているけびん( Twitter: @Kevinrobot34, AtCoder: Kevinrobot34 )です。先日、PyCon JP 2020で、「Pythonで競プロをしよう! 〜入門者が知っておくべき高速化Tips〜」という題名で発表をさせていただきました。発表時のスライドと動画はこちらです。 この内容について、少し加筆してまとめようと思います。 はじめに最近AtCoderを中心に、競技プログラミングの人気が高まっています。 C++で参加している人が最も多いですが、Pythonで参加している人もかなり増えています。 Pythonは書きやすい一方でC++と比べてしまうと実行速度が遅く、Logicは正しくてもPythonだとTLE(Time Limited Exceeded, 時間超過)してしまうことも少なくあり

                                Pythonで競プロをしよう!〜入門者が知っておくべきTips〜
                              • 競プロ界隈でpython強者がやっていることをまとめてみた - Qiita

                                はじめまして。 先週競プロに入門した初心者です。 今はpythonを使っています。 出来ればC++に頼ることなく競プロで良い結果を出したい! ということでpythonのままスコアを上げる方法を考えました。 例えばC++では こんな感じで高速化をする人が多いです。 要するに、頻繁に使う記述を簡略化しておくって感じですかね。 前からこういうおまじない的な慣習があることは知っていました。 が、これのpythonバージョンはpythonで競プロをやっているのに知りません。 そこで、pythonの競プロ強者の慣習を学んでいこうと思い、この記事を書きました。 同じような方にも参考になれば幸いです。 はじめにしたこと 強い人の提出コードを読みました。 やっぱりC++競プロと同じようなおまじないがあったので解読していこうと思います。 (とある強そうな人から引用しています) 実際のコード 実際のコードを順に

                                  競プロ界隈でpython強者がやっていることをまとめてみた - Qiita
                                • 競プロerのための群論 (swapと順列と対称群) - little star's memory

                                  お知らせ Zennに移植しました。今後こちらの記事は更新されず、Zennの方のみ更新します。 zenn.dev この記事では競技プログラミングと群論に関する解説をします。競技プログラミングの問題を群論という立場から見ることで、新たな視点を得ることができるようになると思います。また、群論の入門にもなればいいなと思っています。 swapと順列 競技プログラミングの問題に、swapと順列は多く登場します。swapとは、2つの要素を入れ替える操作のことです。例えば、次のような問題があります。 第二回全国統一プログラミング王決定戦予選 C - Swaps (問題ページ) $ N $ 要素からなる2つの整数列 $ A_1,\ldots,A_N $ および $ B_1,\ldots,B_N $ が与えられます。以下の操作を $ N-2 $ 回まで(0回でもよい)行うことで、1以上 $ N $ 以下のすべ

                                    競プロerのための群論 (swapと順列と対称群) - little star's memory
                                  • Ruby競プロTips(基本・罠・高速化108 2.7x2.7)

                                    計測方法は、(10**6).times{ }のような最小限のコードです。 実際、制限時間が2秒だとして、10の7乗台前後から、想定解法でも厳しくなってくる印象です。 それ以前の1,000,000回(10の6乗)で2秒超えてTLEするなら、自分の書いたアルゴリズムを疑いましょう。 今のC++は10の7乗だと「余裕をもって間に合う」レベルらしいので、C++と比べるとRubyは10倍遅い感じです。 競技プログラミングでは、問題に与えられた要素数も 方針・アルゴリズムを考えるヒントになるので、このあたりの感覚はもっておくとよさそうです。 高速化手法のまとめ・見方 先に高速化のまとめがあった方が親切かと思い、簡単にまとめておきます。 (まとめの方にしか書いてないのもあります……) 本記事は、アルゴリズムの話も少し混じっていますが、アルゴリズムはRubyに限らないので、ほぼ触れてません。 「アルゴリズ

                                      Ruby競プロTips(基本・罠・高速化108 2.7x2.7)
                                    • 競プロに便利な C++17 新機能まとめ - Qiita

                                      AtCoder の言語アップデート で、C++17 対応コンパイラが使えるようになりました。やったー! この記事では、競技プログラミングに役立つ C++17 の新しい標準ライブラリ・言語機能を 16 個紹介します。 サンプルコードは、AtCoder の GCC 9.2.1 システムで動作を確認しています。 C++17 標準ライブラリ機能 1. 値を範囲内に収める std::clamp(x, min, max) 値 x を、min 以上、max 以下に収めてくれる関数です。 これまで std::max(std::min(x, max), min) と書いてたのが 1 つの関数で済みます。 #include <bits/stdc++.h> int main() { // 値を 0 以上 100 以下に収める std::cout << std::clamp(50, 0, 100) << '\n'

                                        競プロに便利な C++17 新機能まとめ - Qiita
                                      • 「競プロ典型 90問」Smallest Subsequence (最小部分列問題)

                                        最小部分列問題 「 競プロ典型 90 問」の 006 - Smallest Subsequence(★5) (最少部分列問題) という問題を解いてみたのですが、最初は解説をみてもさっぱり分からず打ちひしがれていました・・・。 が、けんちょんの競プロ精進記録 を見るに、どうもこの問題を解く途中で出てくる nex という配列が「極めて汎用性が高いので、実にさまざまな問題で活用できます!!!」ということらしく、ちゃんと理解しといた方が良さそうだ・・・ということで気を取り直して取り組んでみたところなんとか理解できました。 せっかくなので忘れないうちに解説記事を作って記憶を定着させたいと思います。なお後半の実装パートは、Haskell で実装します。 けんちょんさんの解説記事にあるとおり、この問題 (を全探索で解く場合) の解法のキーになるのは事前に「任意の文字が i 番目以降に出現する位置」を二次

                                          「競プロ典型 90問」Smallest Subsequence (最小部分列問題)
                                        • パズルとアルゴリズムのコラボ本を書きました! - けんちょんの競プロ精進記録

                                          1. はじめに お久しぶりです! けんちょん本のけんちょんです。 最近はアルゴリズムがとても盛り上がっていますね。今回新たなアルゴリズム本を上梓させていただくことになりました! 発売予定日は 2022/4/20 です。一部大型書店では、もうすでに並んでいるはずです。今回の記事では、この本を通してお届けしたいメッセージや、想定読者、内容などについて簡単に紹介させていただきます。 amazon ページへのリンク 2. 本書の内容と対象読者 2-1. 本書の内容 百聞は一見に如かずということで、まずは目次構成をお見せします! 第 1 章:アルゴリズム入門 第 1 話:「テンパズル」 〜 力まかせ探索 第 2 話:「小町算」 〜 再帰関数 第 3 話:「虫食算」 〜 枝刈り 第 II 章:グラフアルゴリズム 第 4 話:「数独」 〜 深さ優先探索 1 第 5 話:「覆面算」 〜 深さ優先探索 2

                                            パズルとアルゴリズムのコラボ本を書きました! - けんちょんの競プロ精進記録
                                          • よくやる再帰関数の書き方 〜 n 重 for 文を機械的に 〜 - けんちょんの競プロ精進記録

                                            時は 2020 年 5 月 3 日。 ここ最近、AtCoder では、「再帰関数を用いた DFS な全探索」というタイプの問題が激増しています!!! AtCoder ABC 165 C - Many Requirements (昨日のやつ) AtCoder ABC 114 C - 755 AtCoder ABC 119 C - Synthetic Kadomatsu AtCoder ABC 161 D - Lunlun Number パナソニックプログラミングコンテスト D - String Equivalence これらの多くは緑後半から水色前半の difficulty を叩き出す、とても恐れられている問題たちです。しかし実のところ、「ちょっと複雑だけど、単純に全探索するだけ」という側面もあります。 これらの出題が最近急増しているのは、おそらくは AtCoder 社側に 最近の AtCo

                                              よくやる再帰関数の書き方 〜 n 重 for 文を機械的に 〜 - けんちょんの競プロ精進記録
                                            • デバッグ力を高める! ~5 年間の経験から学んだ、競プロ・アルゴリズム実装におけるバグ取りの戦略~ - Qiita

                                              こんにちは、大学 1 年になったばかりの E869120 です。 私は 5 年前に趣味で競技プログラミングを始め、AtCoder や日本情報オリンピックなどに出場しています。ちなみに、2021 年 5 月 5 日現在、AtCoder では赤(レッドコーダー)です。 今回は、アルゴリズムや競技プログラミングの問題を速く解くために必要な、効率的なデバッグの方法について記したいと思います。是非お読みください。 1. はじめに 皆さんがプログラミングの問題を解いていく際に、次のような場面に遭遇したことはありますでしょうか。おそらく、読者の大半が「はい」と答えると思います。 ソースコードに謎のミスを埋め込んでしまったせいで D 問題が解けない… ああ、プログラムを 1 文字変えただけで WA(不正解)が AC(正解)に変わった、悲しい… このように、プログラムにバグ(プログラム実装上のミス)を埋め込

                                                デバッグ力を高める! ~5 年間の経験から学んだ、競プロ・アルゴリズム実装におけるバグ取りの戦略~ - Qiita
                                              • 競プロのアルゴリズム関連略称まとめ - noshi91のメモ

                                                随時募集しています 略称 正称 APSP All Pairs Shortest Path BB Branch and bound BBST Balanced Binary Search Tree BFS Breadth First Search BIT Binary Indexed Tree BM Berlekamp-Massey BM Boyer-Moore BSGS Baby-Step Giant-Step CHT Convex Hull Trick CRT Chinese Remainder Theorem D&C Divide and Conquer DAG Directed Acyclic Graph DEPQ Double-ended priority queue DFS Depth First Search DP Dynamic Programming DST Disjoin

                                                  競プロのアルゴリズム関連略称まとめ - noshi91のメモ
                                                • 競プロのための標準 C++

                                                  ◆ 内容 競技プログラミングで使える C++ の主要な標準機能のサンプル付き解説を執筆しています。C++ のバージョンは AtCoder の gcc 12.2 に準拠した C++17 / 20 / 23 です。競技プログラミング固有のハックやスタイル(<bits/stdc++.h>, 大きな配列、using namespace std 等)の使用を避けているため、一般的な C++ ソフトウェア開発でも使える、また C++ 標準ライブラリの機能 (std:: から始まる) を意識したコーディングの練習ができます。 ◆ 対象読者 ・競プロ上達のために C++ 標準ライブラリを一通り学びたい方 ・コンテストで参照できる C++ ドキュメントを探している方 ・現時点ではとくに APG4b や市販入門書で C++ を学んだ人にとって有益な内容から書き始めています。将来的にはさらに幅広い内容を扱う計画

                                                    競プロのための標準 C++
                                                  • 競プロは業務の役に立っているか?~ふるやんの場合~

                                                    こんにちは。お久しぶりです。ふるやん(@furuya1223)です。 気がついたら社会人一年目が終わっていました。いつの間に。 先日の ICPC のスポンサー紹介動画で「競プロが業務に役立った経験はあるか」について少し触れましたが、その動画の公開が終了したので、社会人一周年記念も兼ねてそんな話をしようと思います。 ※ 2021/4/3 19:03 に「動的計画法」「編集距離 DP」について加筆し、トポロジカルソートに関する記述を一部修正しました。 前置き 私は大学 2 年ぐらいから AtCoder を始めた者です。レーティングは黄色ですが最終参加は 2021/1/16 です。なお、厳密には情報系の学科出身ではありません。AtCoderプロフィール 仕事では音声認識の研究開発をしています。つまり、多くのソフトウェアエンジニアとはだいぶ違うことをしています。 なので、ほとんどの人には参考になら

                                                      競プロは業務の役に立っているか?~ふるやんの場合~
                                                    • 競プロで役立つC++20新機能 - Qiita

                                                      はじめに 競プロのコーディングが快適になるC++20新機能をまとめました!! C++20の豊富な新機能から競プロで便利な機能を合計で16個紹介します. ※(2023/8/7追記) AtCoderでは2023年の言語アップデートにより、ほとんどの機能が使用可能となりました。新バージョンのgcc12.2では、紹介されている機能のうち <format> を除くすべての機能が使用可能です。 参考文献 https://cpprefjp.github.io/lang/cpp20.html https://en.cppreference.com/w/cpp/20 を参考にしました. cpprefjp以外をあまり見ていないので,間違っているところがあるかもしれません. 誤りに気づいたら指摘していただけると幸いです. 標準ライブラリの新機能 1. コンテナのメンバ関数の追加 1-1. 連想配列に conta

                                                        競プロで役立つC++20新機能 - Qiita
                                                      • 競プロ実装テクニック - よすぽの日記

                                                        これはなに 実装力で戦える! ~競プロにおける実装テクニック14選~ - Qiita に触発された 競技プログラミングでコーディングの際気を付けていること - うさぎ小屋 を強く参考にしている 効果が高い or 一般性がありそう なことから書いたつもり 重要なこと 「競プロのきれいなコードと業務のきれいなコードは違う」と定期的に唱える。未来の自分 or 他の人 が読む必要がないことを仮定できるため、様々なバッドノウハウ(業務)が正当化される。(あえて過激なことを書くと、)「using namespace stdを使わない」などは逆にバッドノウハウ(競プロ)だと思っている。 -fsanitize=undefined,address / -D_GLIBCXX_DEBUG #include <iostream> using namespace std; int main() { int a[10

                                                          競プロ実装テクニック - よすぽの日記
                                                        • AtCoder での実力アップを目指そう! ~競プロ典型 90 問~ - Qiita

                                                          競プロにおける「上達の壁」 そこで私は、主に以下の 3 点が競技プログラミングにおける上達の壁になっているのではないかと考えています。 基礎的なコーディングの知識。for 文・条件分岐・配列などを使った基本的なプログラムが書けるかどうか。(レーティング 1~99 程度) 競プロで戦うために必要な、最低限のアルゴリズムや数学の知識。例えば二分探索・動的計画法・グラフ理論・逆元といったものが挙げられる。(レーティング 100~1199 程度) アルゴリズムや数学的知識 [2. で扱ったもの] をどうやって実際の問題に応用するか、考察面・実装面両方含めた典型テクニック。(レーティング 200~1999 程度) 今はどの壁が問題か? 現在、1. と 2. についてはかなり教材が整備されており、例えば 1. のプログラミングの基本を学ぶにあたっては、 C++入門 AtCoder Programmin

                                                            AtCoder での実力アップを目指そう! ~競プロ典型 90 問~ - Qiita
                                                          • AtCoder株式会社に入社しました - 競プロ始めました-kaede2020-

                                                            0.はじめに 1.前職と求人に応募するまでの話 2.オンラインでの1次面談 3.大学の就職活動と新卒で入社したときの話 4.オンラインでの2次面談 5.対面での最終面談 6.終わりに 7.おまけ:入社後の競技プログラミング参加について 0.はじめに はじめまして、もしくはお久しぶりです、競プロ歴3年のかえでです。46歳で競技プログラミングを始め、今の年齢は49歳になります。 そんな私が、本日2023年2月1日、AtCoder株式会社に入社しました。 atcoder.jp いったい何が起こったのかと驚かれた方も多いのではないかと思います。私自身もこの事実を人から聞いたとしたら、「え、どういうこと?」と思ったことでしょう。だから、書ける範囲で入社までの経緯を書きたいと思います。(事前にchokudaiさん*1とけんしょーさん*2には読んでいただいて許可をもらっています。) 1.前職と求人に応募

                                                              AtCoder株式会社に入社しました - 競プロ始めました-kaede2020-
                                                            • 【Python】競プロ用様々な入力の受け取り方まとめ - Qiita

                                                              はじめに 調べて分かったものもあれば自分で考え出したものもあります。 より短い書き方などあったら教えていただけると幸いです。 新しい入力形式があったら随時追加予定です 数値(整数) 1文字の整数 入力例

                                                                【Python】競プロ用様々な入力の受け取り方まとめ - Qiita
                                                              • 中学1年の過半数が「プログラミングできる」 “競プロ”勢も1.7% 東進ハイスクール調べ

                                                                中学1年生の過半数は「プログラミングができる」──東進ハイスクールなどを運営するナガセ(東京都武蔵野市)は12月29日、こんな調査結果を発表した。 この結果は、2021年10月から11月に実施した「全国統一高校生テスト」と「全国統一中学生テスト」の受験生である10万7450人の中高生を対象に実施したアンケートから得たもの。各学年の生徒に「どの程度プログラミングができるか」と尋ね、「できない」と答えた層以外を足し合わせ「できる」としてカウント。最も多かったのは中学1年生で、55.3%が「できる」という結果に。 中学1年生では、「競技プログラミングやKaggleに取り組む」と1.7%が回答。マウス操作ではなく、プログラミング言語を活用したプログラミングができる層についても、下の学年ほど多い傾向にあった。 この調査結果の背景には、学校教育のプログラミング教育の拡充があると同社は指摘する。2020

                                                                  中学1年の過半数が「プログラミングできる」 “競プロ”勢も1.7% 東進ハイスクール調べ
                                                                • 学生だけど正社員!Kaggler&競プロerの23歳アルゴリズムエンジニアにインタビュー | 株式会社AppBrew

                                                                  こんにちは、AppBrew(アップブリュー)の阿部です。 今回インタビューでご紹介するのはProductGrowthチームでアルゴリズムエンジニアを務める平尾 礼央(ひらお れお)。 平尾は高専を卒業後、首都大学東京システムデザイン学部情報通信システムコースに編入。大学で自然言語処理を学ぶ傍ら、Kaggleの機械学習コンペで上位5%の成績を収め、競技プログラミングサイトAtCoderでは上位15%の成績である水色を獲得しました。 大学院に進学後、2020年の8月にAppBrewに正社員としてジョイン。以来、AppBrewのメインプロダクト「LIPS」にてアルゴリズム部分の機能開発を担ってきました。今回のインタビューでは入社のきっかけや学生と正社員の両立について聞いていきます。 ーーこれまでの経歴について簡単に教えてください。 シンガポールで生まれ、親の都合でパキスタンに行き小3まで過ごしま

                                                                    学生だけど正社員!Kaggler&競プロerの23歳アルゴリズムエンジニアにインタビュー | 株式会社AppBrew
                                                                  • レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【上級編:目指せレッドコーダー!】 - Qiita

                                                                    そのうち、最初の 12 個(表の 1 ~ 3 行目)をマスターする方法は、中級編 2-2-2. 節で解説がされていますので、こちらをご覧ください。本節では、残りの 11 個を理解できる記事たちを紹介したいと思います。 座標圧縮 まとまった解説記事が見つからないので、こちらで簡潔に解説しておきます。 座標圧縮とは、とても大きい座標があって現実的に扱えないサイズである場合に、圧縮して計算量を抑えるというテクニックです。以下の画像のように、相対的な位置関係が崩れないように圧縮します。(一次元の場合でも、二次元の場合でも通用します。) 実装などを含めた詳しい部分は、以下の記事に書かれています。 座標圧縮について勉強した (java)| バイトの競プロメモ 座標圧縮| 個人的な競プロメモ 半分全列挙 $N$ 通りの全列挙を $O(\sqrt{N})$ 程度の計算回数で効率的に計算する手法です。以下の

                                                                      レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【上級編:目指せレッドコーダー!】 - Qiita
                                                                    • 競プロ典型 90 問 - AtCoder

                                                                      重要な連絡(2021/8/4 追記) コンテストは終了しました。今後は「過去問」としてお楽しみください。(2021/7/12) 皆さんの要望により、「競プロ典型 90 問」は常設ジャッジとなりました。(2021/8/4) 順位表は現在も更新されていますが、コンテスト自体(2021/7/11 19:00 までの提出)の順位表・表彰対象者はこのページ下部をご覧ください。 「競プロ典型 90 問」とは? これは、AtCoder の問題を解くために必要な実力を付けるために作られた「典型問題」を解いていく企画です。 E869120 によって企画・作題が行われ、有志によって準備されたコンテンツです。(AtCoder 公式制作のコンテンツではありません) 2021/3/30 ~ 2021/7/11 の期間、日曜を除き毎日 1 問ずつ問題が追加されます。現在、90 問すべてが追加されています。 主に、At

                                                                        競プロ典型 90 問 - AtCoder
                                                                      • 競プロのための高速フーリエ変換

                                                                        ■「フーリエ変換って知ってる?」 ●「フーリエ変換ですか? 信号処理でもするんですか、先輩」 ■「いや、競プロで使えるようになりたいなって」 ●「ああ、畳み込みの高速化ですか。あれは高速フーリエ変換をそのまま使うだけですからね」 ■「勉強しようと思って色々調べたんだけど、なかなか理解できなくて」 ●「私もうまく説明できるかわかりませんが、お話しましょうか」 離散フーリエ変換(DFT) フーリエ変換の仲間たち ●「フーリエ変換の仲間には色々種類があるんですけど、競プロで使うのは離散フーリエ変換(DFT: Discrete Fourier Transform)ですね」 ■「離散ってことは、連続もあるんだよね」 ●「はい。ざっくり 4 種類あります。フーリエ変換では元の信号を別の信号に変換するんですが、元の信号が周期信号だと変換後は離散信号(数列)になります」 ■「周期信号っていうのは、決まった

                                                                          競プロのための高速フーリエ変換
                                                                        • 実録!MC Digital プログラミングコンテスト2022(AtCoder Heuristic Contest 008)参加記 - 競プロ始めました-kaede2020-

                                                                          0.はじめに 1.問題文の概要 2.最初の提出 3.アイデア出し 4.長期戦の準備 5.得点の計算方法 6.2回目の提出 7.考察の開始 8.5日目の考察 9.閑話休題(今回の目標) 10.スコア計算を実装する 11.動物を閉じ込めることを考える 12.動物のいない人だけのエリアを広くすることを考える 13.ビジュアライザの共有について 14.迷走中 15.7日目 16.最後の週末(8日目)はBFSをすることにしました 17.今日こそは得点を出したい日曜日 18.最終週の月曜日(10日目。残り5日) 19.最終週の火曜日(11日目。残り4日) 20.最終週の水曜日(12日目。残り3日) 21.最終週の木曜日(13日目。残り2日) 22.最終週の金曜日(14日目。残り1日) 23.残り24時間。できる限りの高みを目指す 24.最終日(土曜日) 25.そして、コンテストが終わります。 26.最

                                                                            実録!MC Digital プログラミングコンテスト2022(AtCoder Heuristic Contest 008)参加記 - 競プロ始めました-kaede2020-
                                                                          • AtCoderで15万点分の問題を解いて見えたもの - 競プロ弱者の解答

                                                                            競プロ大好きなsyunsukeです。 最近はwebアプリの勉強も好きです。 タイトルの通り、15万点分の問題を解きました。 10万点の時点がこれなので、 10万点⇒15万点までに 期間 :5/18 ⇒ 10/23   約5カ月 AC数  :633  ⇒ 881      約250問(点数のつかない問題も解いていますので、 単純に5万÷250問=200点/問とはなりません) かかりました。 また、その間のレートの推移ですが、 10万点時点では1222で、15万点時点では1293なので、70増えました。 ただ、その過程はなかなか大変で、一気に1309(Highest)まで上がり、7連敗で1109まで落ち、そこから1293まで戻しています。 この間毎日精進を続け、解ける問題も増えていってたので、私の実力は向上していたはずなのですが・・ コンテストへの新規参加が増えた時期に、強い新人さんたちに抜か

                                                                              AtCoderで15万点分の問題を解いて見えたもの - 競プロ弱者の解答
                                                                            • Googleのインターンホストマッチングに2年連続落ちた話 - 競プロ練習記録

                                                                              やってられるかこのクソ運ゲー採用 まあ今回はホストマッチング用のFormを提出しなかったぼくが悪いようですが(マッチング時期を夏休みのインターンとかぶらないように変えたかっただけなんですが未提出という扱いになったっぽい)、以前から言いたいことが多かったので書きます。 ほんとは受かったら思う存分苦情を書いてやろうと思ったのですが、受からずに書くのは恥ずかしいですね インターンに合格するまで Step 1 応募する。これはStudent向けのインターンに応募すれば90%ぐらいの確率で返信が来るはずです。海外のインターンやインターンでない募集に応募した場合、ほぼ返信が来ないはずで、この時点で選考終了になります。 Step 2 ウェブでプログラミングクイズを受ける。これは練習すればほぼ100%の確率で通過します。プログラミング力が足りない場合、この時点で選考終了になります。 Step 3 Phon

                                                                                Googleのインターンホストマッチングに2年連続落ちた話 - 競プロ練習記録
                                                                              • 【競プロ】青色までに戦う6つの敵 - Qiita

                                                                                AtCoderで青色になりました。色変記事です。 本記事では、水色から青色になるまでにしたことについて書きます。 灰色から水色になるまでにしたことは水色の時の色変記事を読んでいただけると幸いです。 vs 典型パターン 同レート帯のほとんどが当たり前のように解けるタイプの問題は、自分も当たり前のように解きたいですよね。 アルゴリズムやデータ構造はもちろん、数学問題やアドホックでも、ABCの一色下を「典型」として処理できるようにならないと、なかなかレートが上がりません。苦手分野だからと緑diffを落としてしまうとパフォが悲惨なことになってしまいます。 精進方法 2023年4月現在、とりあえず『鉄則本』(競技プログラミングの鉄則 ~アルゴリズム力と思考力を高める77の技術~)を埋めておけば間違いないでしょう。一部高度な内容を含みますが、ABCで出る範囲の内容なのでやって損はないはずです。 演習が

                                                                                  【競プロ】青色までに戦う6つの敵 - Qiita
                                                                                • こわくないbit全探索1 入門編: bit全探索ってなに?【競プロ解説】 - Qiita

                                                                                  競技プログラミング(AtCoder)初心者が、最初に突き当たる壁になることが多いアルゴリズムのひとつに『bit全探索』があります。 この記事では、その『bit全探索』についてできる限り丁寧に解説をしていきます。 記事リンク 1. 入門編 bit全探索ってなに? : bit全探索はどんなことをするアルゴリズムなのか解説します。 2. 基本編1 簡単な例題でbit全探索をやってみよう! : 簡単な例題(部分和問題)で実際にbit全探索を実装してみます。 3. 基本編2 2進法を使って実装してみよう! : 2進法を使ったbit全探索の実装をしてみます。 4. 実践編 AtCoderの問題を解いてみよう! : AtCoderのbit全探索を使う問題のヒントとコード(Python・C++)を載せています。 5. 応用編 3つ以上の選択肢は再帰関数で書こう! : 再帰関数を使ってbit全探索に似た問題

                                                                                    こわくないbit全探索1 入門編: bit全探索ってなに?【競プロ解説】 - Qiita