並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 42件

新着順 人気順

competitiveprogrammingの検索結果1 - 40 件 / 42件

competitiveprogrammingに関するエントリは42件あります。 プログラミングアルゴリズムalgorithm などが関連タグです。 人気エントリには 『競技プログラミングで解法を思いつくための典型的な考え方 | アルゴリズムロジック』などがあります。
  • 競技プログラミングで解法を思いつくための典型的な考え方 | アルゴリズムロジック

    競技プログラミングの問題を解くためには2つのステップがあります。 問題で要求されていることを言い換える知っているアルゴリズムやデータ構造を組み合わせて解く 必要な(知っておくべき)アルゴリズムやデータ構造は色々なところで学ぶことができます。 しかし、「問題の言い換え」や「アルゴリズムを思いつく」というのは、非常に様々なバリエーションがあり、問題をたくさん解かないとなかなか身につきません。 そこで、この記事は以下のことを言語化し、練習のための例題を提示することを目標とします。 問われていることを、計算しやすい同値なことに置き換える方法アルゴリズムを思いつくための考え方競技プログラミングで「典型的」と思われる考え方 ※一部問題のネタバレを含むので注意 ※良く用いられるアルゴリズムやデータ構造については競技プログラミングでの典型アルゴリズムとデータ構造 を参考にして下さい。 入力の大きさ(制約)

      競技プログラミングで解法を思いつくための典型的な考え方 | アルゴリズムロジック
    • できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記

      計算量についてのお話です。対象は、プログラミング経験はあるが計算量のことを知らない初心者から、計算量のことを知っているつもりになっている中級者くらいです。 数式を見たくない人にとっては読むのが大変かもですが、深呼吸しつつ落ちついて読んでくれるとうれしいです。 それから、この記事が自分には合わないな〜と思ったときは、(別の記事を Qiita とかで検索するよりも)この記事の一番下の 参考文献 にある本を読むことをおすすめします。Amazon の試し読みで無料で読めます*1。 TL; DR 関数の増加度合いのことをオーダーと呼ぶよ 計算量は、入力サイズ(など)を受け取ってアルゴリズムの計算回数(など)を返す関数だよ その関数のオーダーについての議論がよく行われるよ オーダーを上から抑えるときは \(O\)、下から抑えるときは \(\Omega\) を使うよ オーダーを上下両方から抑えたいときは

        できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記
      • アルゴリズムの世界地図 - Qiita

        こんにちは、square1001 です。 現在は東京大学の学部 1 年生をしています。私は中学 1 年の頃からプログラミングをやっていて、特にアルゴリズムが大好きです。AtCoder をはじめとする 競技プログラミング にも取り組んでいて、中高生のときは 情報オリンピック にも参加していました。 本記事では、アルゴリズムや競技プログラミングに興味がある方、あるいはプログラミングをやっているけどアルゴリズムをよく知らない方に アルゴリズムはどんなもので アルゴリズムを使うとどんな問題が解けて アルゴリズムが地球のように広く、多様で、奥深く、そして楽しいこと を知ってもらおうと思っています。 アルゴリズムの世界へようこそ 時代は 2020 年代に突入し、急速に IT 化 や DX が進んでいく中で、問題を効率的に解くアルゴリズム技術の重要性が、ますます高まっています。そして、アルゴリズムは、世

          アルゴリズムの世界地図 - Qiita
        • 競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ

          nuc.hatenadiary.org 競技プログラミングについての言及があったのですが、バズってる+競技プログラミングについて、納得がいかない記述がかなり多く見受けられたので、反論記事を書きました。 自己紹介 競技プログラミングの日本最大企業「AtCoder」の社長を9年間続けています。競技プログラマとして、2010年から毎年1つは世界大会で入賞しています。 完全に競技プログラミング支持側の意見なので、ポジショントークを出来るだけ排除しようと心がけているものの、完全に排除することは多分出来ていないため、多数の意見と比較してもらえると幸いです。 競技プログラミングとGoogle まずは肯定的な所から。 Googleに入るためには、競技プログラミングではなく、Googleに入るための勉強をするべき、という点に関しては、間違いなく正しいです。特にAtCoderの競技プログラミングは、常日頃から

            競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ
          • 現役高校生が、AtCoderでレッドコーダーになるまでにやってきたこと。プログラミング上達の秘訣を全て教えます - Findy Engineer Lab

            こんにちは、はじめまして。筑波大学附属駒場高等学校 3 年生(今年 4 月から東京大学に入学予定)の米田優峻(@e869120)と申します。私は競技プログラミング(競プロ)が趣味で、AtCoder・情報オリンピック・パソコン甲子園などの大会に出場しています。2021 年 3 月時点で、AtCoder では赤色(レッドコーダー)です。また、国際情報オリンピックの 2018 年/2019 年/2020 年大会で金メダルを獲得しています。*1 とはいえ、決して簡単にこの記録を手に入れられたわけではありません。何度も挫折と失敗を経験しながら自分のスキルを磨いた結果、競プロを始めてから 3 年後にはレッドコーダーになることができたのです。 今回は「わたしの選択」というテーマで寄稿の機会を頂いたので、私が中学 1 年生の秋に競技プログラミングを始めてからレッドコーダーになるまで、そして国際情報オリンピ

              現役高校生が、AtCoderでレッドコーダーになるまでにやってきたこと。プログラミング上達の秘訣を全て教えます - Findy Engineer Lab
            • アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 - Qiita

              こんにちは、大学 1 年生になったばかりの E869120 です。 私は競技プログラミングが趣味で、AtCoder や日本情報オリンピックなどに出場しています。ちなみに、2021 年 4 月 7 日現在、AtCoder では赤(レッドコーダー)です。 本記事では、アルゴリズムの学習や競技プログラミングで使える数学的な部分を総整理し、それらについて解説したいと思います。前編・中編では数学的知識、後編(2021/4/26 公開予定)では数学的考察の側面から書いていきます。 【シリーズ】 アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 ← 本記事 アルゴリズム・AtCoder のための数学【中編:数学的知識編②】 アルゴリズム・AtCoder のための数学【後編:数学的考察編】 1. はじめに 21 世紀も中盤に入り、情報化社会(いわゆる「IT 化」)が急激に進行していく中、

                アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 - Qiita
              • [2023年1月版]競技プログラミングを始めたばかりの人にオススメの問題集 - Qiita

                最推し: アルゴ式 2023年1月現在、初心者向けの最初の問題集としてお勧めしたいのは アルゴ式 です。アルゴ式の特徴として次のようなものがあると思っていて、それが初心者が練習するうえで適した特徴だと考えるからです ジャンルごとに問題が分かれている 1ジャンルごとの問題数がそれなりにある ひとつひとつの問題の難易度が易しめ 興味の湧いた人は、とりあえずアカウントを作って問題を解いてみてください。 なお、「競技プログラミングを始めたばかりの人」と言っても、その人の経験によって最適なものは変わってくるとは思いますが、次のような人を想定したときに特にアルゴ式が適していると思います。 プログラミング自体の初心者ではない。 初歩的なプログラミングの概念は一通り把握しているくらいを想定。 過去問に取り組もうとしたけど、A問題やB問題でも結構難しいと感じる。 この想定にマッチしない人であれば、次節以降で

                  [2023年1月版]競技プログラミングを始めたばかりの人にオススメの問題集 - Qiita
                • IT未経験からMLエンジニアになるまでの2年半でやったこと - MLaaSS - Machine Learning as a Self-Satisfaction

                  はじめに 自身の転職活動にあたり皆さんの転職エントリが非常に参考になったので、私も同じ境遇の方の参考になればと思い、書き残すことにしました。(ただ、本当に私と似た境遇の方にはなかなかリーチしづらい気がしていますが・・・) TLDR; 30歳でIT未経験からMLエンジニアに転職 約2年半独学で勉強(ほとんどkaggleしてただけ) 無関係に思えた現職での経験もなんだかんだ転職で役に立った 目次 自己紹介 現職について 転職の理由 勉強したこと 転職活動 終わりに 1.自己紹介 かまろという名前でTwitterなりkaggleなりをやっています。kaggleでは画像やNLPといったdeep learning系のコンペを中心に取り組んでおり、2019年の9月に金メダルを獲得しMasterになることができました。 恐らくここが他の転職エントリを書かれている方々と大きく異なる点かと思うのですが、現職

                    IT未経験からMLエンジニアになるまでの2年半でやったこと - MLaaSS - Machine Learning as a Self-Satisfaction
                  • この半年やったこと、継続していること - from scratch

                    syohex.hatenablog.com studio3104.hatenablog.com あまりにも同じことをしていたので「せっかくなので」と思って筆を執ることにする。 @syohex さん も @studio3104 さん も僕もだいたい同年代の人たちが同年代の sugyan や色々な方の影響を受けて同じことをしているというのはシンパシーを感じますね。 僕は今の仕事はフロントエンドエンジニアであることが多いのですが、「知識に垣根は作らない」をモットーにしているので、色々半年間挑戦してみました。 Leetcode この半年で545問解きました。 github.com sugyan が leetcode に取り組んでいたのも見てたのですが、僕の場合は自分の会社の面接でコード面接をやることがあり、コード面接の時に自分が知らないような事を問題として出すのは恥ずかしいな、という思いから勉強し

                      この半年やったこと、継続していること - from scratch
                    • RustCoder ―― AtCoder と Rust で始める競技プログラミング入門

                      AtCoder のジャッジシステムを利用しながらプログラミング言語 Rust について解説します.C++ や python のような他の言語に触れたことのないプログラミング初心者でも読めるよう努めています.更新履歴は github ( https://github.com/fiveseven-lambda/zenn/commits/main/books/rust-atcoder ) から見られます.内容に関するご意見やご指摘などは,プルリクエストか twitter ( https://twitter.com/57tggx ) で遠慮なくお願いします.カバー画像: GRAPHY 筧様

                        RustCoder ―― AtCoder と Rust で始める競技プログラミング入門
                      • 競技プログラミングに関係する数学の整理 ~文系出身や数学苦手erが、もっと競プロを楽しむために~ - テルの競プロメモ

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

                          競技プログラミングに関係する数学の整理 ~文系出身や数学苦手erが、もっと競プロを楽しむために~ - テルの競プロメモ
                        • 「競技プログラミングの鉄則」のレビュー - じじいのプログラミング

                          米田 優峻さん(E869120@ICPC2022 (@e869120) / Twitter)の著書「競技プログラミングの鉄則 ~アルゴリズム力と思考力を高める77の技術~」をご恵贈いただきました。その感想です。 競技プログラミングの鉄則 (Compass Booksシリーズ) 作者:米田 優峻マイナビ出版Amazon 素晴らしい内容で競技プログラミング初心者への最初の1冊として最もお勧めできる本です。特に、数学も得意というわけではなくプログラミング自体も初めてという方には、ダントツで一番お勧めできる本です。 本書の良い点 1.図が分かりやすい。 最初の48ページが無料公開されているので、百聞は一見にしかずということで見ていただけると良いと思います。i www.dropbox.com 図自体分かりやすいですし全編カラーで書かれているのも良いです。段階的に説明すべきものについて無理に1枚に納め

                            「競技プログラミングの鉄則」のレビュー - じじいのプログラミング
                          • 40代で Rust を触り始めて 1年で AtCoder に入水できた件 - Qiita

                            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに hossie - AtCoder 2023/04/01 に AtCoder 入水しました (参加者の上位 10% ほどにあたる水色レートに到達)。参加から一年ほどでした。 本記事は色変に関する、まとまりのない長文ポエムです。 入緑の色変記事 AtCoder 緑になったのでパズル好きな人に競プロを紹介してみる - Qiita Rust 初心者の AtCoder 用開発環境設定と、解く流れの例 - Qiita Rust 初心者の AtCoder でよく使う言語機能とライブラリー覚え書き - Qiita スペック 開発環境 Micr

                              40代で Rust を触り始めて 1年で AtCoder に入水できた件 - Qiita
                            • AtCoder と Rust で始める!競技プログラミング入門(Rust 版 APG4b)

                              競プロ( AtCoder 青 / CodeForces 青), C / C++ , Rust ,Arch Linux に関連する記事を書くと思います

                                AtCoder と Rust で始める!競技プログラミング入門(Rust 版 APG4b)
                              • AtCoderで青色(8割以上のIT企業でアルゴリズム力はカンスト)になったので青になるまでに必要そうなことをまとめる - Qiita

                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 趣味と勉強を兼ねて競技プログラミングをしている @kami634 です。この度、AtCoderで目標としていた青コーダーになりました。 青色というのは、一定水準以上のアルゴリズムの知識を持ち、それを問題解決に活かすことができないとなることができません。それゆえに多くの人の目標になっていると思います。 chokudaiさんのブログ記事に青のレベル感が記載されていたのでご参考に↓ 黄・橙・赤などの上を見上げると、青色というのは通過点に過ぎず、まだまだ必要なことは多いです。ですが、青色レベルのアルゴリズム力があれば多くの問題を解決す

                                  AtCoderで青色(8割以上のIT企業でアルゴリズム力はカンスト)になったので青になるまでに必要そうなことをまとめる - Qiita
                                • 世界四連覇AIエンジニアがゼロから教えるゲーム木探索入門 - Qiita

                                  はじめに 書籍化 本記事を元に ゲームで学ぶ探索アルゴリズム実践入門~木探索とメタヒューリスティクス という書籍を出版することになりました! 本記事を読んで気になっていただけたらご購入をご検討いただけるとうれしいです! この記事で得られる技術 ゲームルールに適した探索アルゴリズムを選択する ゲーム木探索をするのに適したクラス設計 主要なゲーム木探索アルゴリズムの実装 この記事の特徴 汎用アルゴリズムの実装例による他ゲームへの応用力と、実際に動作可能なサンプルコードによる具体的実装イメージの両視点でわかりやすくした(片方しか記載のない記事が多い) サンプルコード付き日本語記事がほぼないDUCTを解説している サンプルコードは印のついたメソッドを実装したクラスさえ書けば、アルゴリズム部分を変更せずそのまま他のゲームで動作可能になっている この記事で扱わない関連技術 探索の高速化 多様性の確保

                                    世界四連覇AIエンジニアがゼロから教えるゲーム木探索入門 - Qiita
                                  • あのアルゴリズムはどこ? Pythonを使用してAtCoderの緑色や水色を目指す方に、30以上のアルゴリズムスニペットと100問以上の問題(ACコード付き)を紹介! - Qiita

                                    あのアルゴリズムはどこ? Pythonを使用してAtCoderの緑色や水色を目指す方に、30以上のアルゴリズムスニペットと100問以上の問題(ACコード付き)を紹介!PythonアルゴリズムAtCoder競技プログラミングPypy 0.はじめに 2020年の5月よりAtcoderのコンテストに参加してから一年経った、現在水色コーダーとなりました、H20と申します。 AtCoderではPythonを使用して参加しており、水色になるまでに様々なアルゴリズムを使用しました。 アルゴリズムについてはほとんど自作せず、有識者の作成されたスニペットを調べては、ある程度理解しながら使用していました。 この記事では、Pythonにてあるアルゴリズムを使用する際にお勧めな書き方の説明をしているスニペットの記事に、それを利用してACしたコードを添えて紹介していきたいと思います。 (ただ、私のACコードは極力見

                                      あのアルゴリズムはどこ? Pythonを使用してAtCoderの緑色や水色を目指す方に、30以上のアルゴリズムスニペットと100問以上の問題(ACコード付き)を紹介! - Qiita
                                    • 超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita

                                      1. はじめに ~メインを読むための準備~ まず、大きな数の計算の話をする前に、少しコンピューターと計算回数について話しましょうか。 コンピューターは、現代ではソフトウェアやアプリケーションの開発に使われていますが、これには重要な背景があります。これは「計算がめっちゃ速いこと」です!人間なんかと比べたら、圧倒的な計算スピードを誇ります。 1-1. 人間の計算速度はどのくらい? まず人間はどのくらいの速度で計算できるでしょうか?速い人も遅い人もいると思います。 例えば、$628 \times 463$ の計算を、今やってみましょう。10 秒以内で計算できたらかなり速い方でしょう。この計算では、次のように「単純計算」を合計 28 回もしていることになります。 9 回の 1 桁 × 1 桁の掛け算 6 回の 1 桁 × 1 桁の足し算 13 回の繰り上がり計算 もし $628 × 463$ が

                                        超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita
                                      • アルゴリズムロジック

                                        問題へのリンク 問題概要座標 \((0,0)\) からスタートして \(N\) 回の移動で \((X,Y)\) に到達する確率を求めたい。 1回の移動では、上下左右それぞれの方向に確率 \(\frac{1}{4}\ ...

                                          アルゴリズムロジック
                                        • 競プロ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
                                          • Kaggleの学習から投稿までをAWS, GitHub Actionsを使って自動化する - kanayamaのブログ

                                            金山(@tkanayama_)です。先日終了したKaggleの"M5 Forecasting"というコンペに参加した際、クラウドやCI/CDの勉強も兼ねて、AWS, GitHub Actionsを使って遊んでみました。 免責 N番煎じだったらすみません。一応、同じことをやっているネット記事は見つかりませんでした。 私はクラウドなど勉強中の身分ですので、もっといいやり方がある or 説明が間違っている、などありましたら教えてください。 私がこのシステムを使って参加したコンペの順位は5,558チーム中1,000,000,000位だったので、Kaggleで勝てるかどうかは別問題のようです :pien: この記事のゴール 下記のようなシステムを構築することをゴールとします。 ユーザーがやることは2つ(図中でユーザーから伸びている黄色矢印)で、 実装したコードをgit pushし、 AWSコンソール

                                              Kaggleの学習から投稿までをAWS, GitHub Actionsを使って自動化する - kanayamaのブログ
                                            • パズルとアルゴリズムのコラボ本を書きました! - けんちょんの競プロ精進記録

                                              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 文を機械的に 〜 - けんちょんの競プロ精進記録
                                                • 競プロのための標準 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++
                                                  • 競プロ実装テクニック - よすぽの日記

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

                                                      競プロ実装テクニック - よすぽの日記
                                                    • セグメント木を徹底解説!0から遅延評価やモノイドまで | アルゴリズムロジック

                                                      セグメント木とは セグメント木とは、完全二分木(全ての葉の深さが等しい木)によって実装された、区間を扱うのに適したデータ構造のことです。 区間に対する操作を対数時間 O(log n) で行えることが特徴で、競技プログラミングなどで頻出となっています。 セグメント木でできること セグメント木は、区間に対する操作やクエリを行うことができます。 特に、 区間上の値を更新する任意の区間上の最小値や合計値などを取得する などが対数時間でそれぞれ行えるのが強みです。 区間上の合計値などは、累積和などを使えば前処理 O(N) ・クエリ O(1) で取得することもできます。しかし、区間上の値の更新と、合計値の取得が入り乱れるような時は、セグメント木の方が有効になることが多いです。 以下では説明のために、区間上の最小値 Range Minimam Query(RMQ) を扱うセグメント木を例として説明します

                                                        セグメント木を徹底解説!0から遅延評価やモノイドまで | アルゴリズムロジック
                                                      • 競技プログラミングで頻出の「ダブリング」を解説する

                                                        競技プログラミングでは頻繁に出てくる「ダブリング」という手法について説明しようと思います。 競プロをはじめて間もない人や、競プロ外の人に向けて書きたいと思います。 最初に予防線を張っておきますが、内容が正しいかどうかは保証しません。 繰り返し二乗法繰り返し二乗法という有名なアルゴリズムがあります。 例えば、3の100億(10^10)乗を計算せよと言われた時に、 1回1回計算していたのでは時間がいくらあっても足りません。 しかし繰り返し二乗法を使えば、log(100億)くらいの計算量で計算出来るようになります。 具体的にどういう仕組みかを説明するために より小さな場合として3の11乗を計算するとした時に、 3^11 = (3^8) x (3^2) x (3^1) と3^(2^k)の積に分解出来るならば、 11を1011と2進数で表した時の1の数分だけで計算が終わることになります。 (a^bは

                                                          競技プログラミングで頻出の「ダブリング」を解説する
                                                        • 超高速!多倍長整数の計算手法【後編:N! の計算から円周率 100 万桁の挑戦まで】 - Qiita

                                                          4-1. N! の高速な計算 $N! = 1 \times 2 \times 3 \times 4 \times \cdots \times N$ を計算してみましょう。 $N!$ は場合の数を求める問題でよく出てきて、こんな感じのものが求まります。 $1, 2, ..., N$ が書かれたトランプのカードが 1 枚ずつあるとき、これを一列に並べる順番は何通りあるか? 例えば、$N = 13$ の場合 $13! = 6,227,020,800$ 通り、のように計算できます。 また、$N!$ は二項係数 $_NC_K$ を求めるのにも使われます。 $N!$ が求まれば、$_NC_K = N! \div K! \div (N-K)!$ で掛け算・割り算するだけで計算できますね。 $N$ 個の区別できるボールから $K$ 個を選ぶ方法は何通りか? これが $_NC_K$ になります。例えば、$N

                                                            超高速!多倍長整数の計算手法【後編:N! の計算から円周率 100 万桁の挑戦まで】 - Qiita
                                                          • [数学・numpy] 高速フーリエ変換(FFT)による畳み込み | maspyのHP

                                                            概要 「Python で競技プログラミングをやる」の文脈で、高速フーリエ変換を使うための基礎知識を整理します。 高速フーリエ変換自体は競技プログラミング以外の文脈でも重要なアルゴリズムですが、そうした需要に応えることは、本記事では想定していません。 高速フーリエ変換の詳しいアルゴリズムにはこの記事では触れません(既存の解説が多数ありますし)。代わりにフーリエ変換についての基礎知識について、少し整理しました。ここは、使用言語に関係しない部分です。 最低限、Python での実装だけ見たい人は大部分を飛ばしてよいと思います。 フーリエ変換の性質 フーリエ変換の定義 詳しくは、本記事では扱いません。 $K$ を $1$ の $n$ 乗根を $n$ 個持つ体とします(競プロの文脈だと、$K=\C$ および $K=\F_p$ が重要です)。 $K$ に値を持つ数列 $A = (a_0,a_1,\ld

                                                              [数学・numpy] 高速フーリエ変換(FFT)による畳み込み | maspyのHP
                                                            • Rust で競技プログラミングの作問支援ツールを作った話 - Qiita

                                                              $ cd problem-directory/ $ ls -l total 8 -rw-r--r-- 1 koba_mac xxx 315 11 26 01:38 creo.toml drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 etc drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 in drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 out drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 sol drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 task creo.toml が唯一の設定ファイルです。リポジトリの sample_aplusb を参考に、creo.toml に然るべき行を追加したり、然るべきディレクトリに

                                                                Rust で競技プログラミングの作問支援ツールを作った話 - Qiita
                                                              • AHC006初心者向け解説 ~貪欲だけで順位表2ページ目を目指す~ - TERRYのブログ

                                                                ヒューリスティックコンテスト、楽しんでますか?私は楽しんでいます。最近企業AHCなんかも続々と出てきて、これからどんどん盛り上がってくれるんじゃないかと期待しています。 とはいえ、ヒューリスティックコンテスト特有の取っつきづらさがあるのも確かです。「どこから手を付けていいか分からない……」「AHC後のTLに焼きなましとか2-optとか流れてきたけど何が何だか……」と思われた方も多くいらっしゃるのではないでしょうか? AHC006は巡回セールスマン問題を発展させた問題なので、確かに2-optを使った焼きなましができると有利ではあります。しかし、専門知識がないと戦えないかというと全くそんなことはありません。 この記事では、AtCoder Heuristic Contest 006 (AHC006)を題材として、 焼きなまし → 使いません ビームサーチ → 使いません 2-opt → もちろん

                                                                  AHC006初心者向け解説 ~貪欲だけで順位表2ページ目を目指す~ - TERRYのブログ
                                                                • Python で std::set の代替物を作った - Qiita

                                                                  Pythonista の皆様、こんにちは。競技プログラミングをしている tatyam と申します。 Python で競技プログラミングをしていると、std::set が欲しいな〜ってとき、ありますよね? 例えばそう、 Cutting Woods (ABC217-D) を見てみましょう。これは以下のような問題です。 長さ $L$ の定規がある。以下のクエリが $Q$ 回与えられるので、順に処理せよ。 1 x:目盛 $x$ で定規を切る。 2 x:目盛 $x$ を含む部分の長さを出力する。 $L ≤ 10^9,\ N ≤ 2 \times 10^5$ 素直に考えると、切れ目の位置の集合を管理すれば良さそうです。 $s$ を切れ目の位置の集合とする。はじめ、$s = {0, L}$ である。 1 x が与えられたら、$s$ に $x$ を追加する。 2 x が与えられたら、( $s$ の $x$

                                                                    Python で std::set の代替物を作った - Qiita
                                                                  • Kick Start - Google’s Coding Competitions

                                                                    Hone your coding skills with algorithmic puzzles meant for students and those new to coding competitions. Participate in one round or join them all.

                                                                      Kick Start - Google’s Coding Competitions
                                                                    • 競技プログラミングについてお話しします - GMO Research & AI Tech Blog

                                                                      ※こちらの記事は、弊社インド人エンジニアのプリヤンカさん執筆記事を和訳したものです。 ▼英語バージョンはこちら はじめに こんにちは !Priyankaです。 現在、GMOリサーチ株式会社でシステムエンジニアとして働いています。 この会社で実際に提供しているサービスのコードを書くようになってからなんと約3年が経ちました・・・! まだまだエンジニアとしては成長段階ですが、どんどん新しいことを成し遂げていきたいですし、常に成長し続けたいと考えています。 引き続き自分のスキルを向上させる方法を探していこうと考えているところです。 競技プログラミングについて書こうと思った理由 世界中の人々と競い合ってみたいと考えたことはありませんか? また、自分自身のプログラミングスキルのレベル感を把握してみたいと思いませんか? 私たちは皆、個人的なものであれ専門的なものであれ、あらゆる分野の物事を熟達させるため

                                                                        競技プログラミングについてお話しします - GMO Research & AI Tech Blog
                                                                      • プログラミング競技大会「PG BATTLE 2020」優勝はIndeed(J)、東工大、灘中!459チームが参加、大学最多は東大で24チーム出場 - ロボスタ ロボスタ - ロボット情報WEBマガジン

                                                                        一番多い参加チームは今年も東京大学、人気の言語は「C++」 大学&大学院、高専、専門学校の部で、最も参加チームが多かったのは今年も東京大学で、24チームと他を圧倒した(昨年は東大から20チームが参加)。京大(10)、八戸高専(10)、慶應(3)、早稲田(6)と続いた。 高校、中学、小学校の部からは静岡県立島田工業高等学校が9チーム参加。また、PG BATTLE 2020の前夜祭に参加したお茶の水女子大の競プロサークルも初参戦した。 高校、中学、小学校の部 「PG BATTLE 2020」参加者の使用言語はC++がもっとも多く549人、次に多いのがPython 189人、続いてJava 160人。部門別に見るとC++とPythonは全ての部門で使用され、Javaは企業の部がもっとも使用している。 結果発表 企業の部はIndeed Japanが制す 企業の部(198チーム)1位はIndeed

                                                                          プログラミング競技大会「PG BATTLE 2020」優勝はIndeed(J)、東工大、灘中!459チームが参加、大学最多は東大で24チーム出場 - ロボスタ ロボスタ - ロボット情報WEBマガジン
                                                                        • Competitive programming in Haskell: 2D cross product, part 1

                                                                          Time for some more geometry! In my previous post I challenged you to solve Cookie Cutters, which asks us to scale the vertices of a polygon so that it has a certain prescribed area. It’s possible to solve this just by looking up an algorithm for computing the area of a polygon (see the “shoelace formula”). But the way to get good at solving geometry problems is not by memorizing a bunch of formula

                                                                            Competitive programming in Haskell: 2D cross product, part 1
                                                                          • PG BATTLE 2024 - [第7回]企業・学校対抗プログラミングバトル

                                                                            プログラミングスキル判定サービス『TOPSIC』事業を 2025年2月28日をもってAtCoder株式会社に譲渡することについて合意したことをお知らせします。 PG BATTLE 2024 に関するお知らせを記載しております。

                                                                              PG BATTLE 2024 - [第7回]企業・学校対抗プログラミングバトル
                                                                            • 【Python】競プロテンプレ【AtCoder】 - Qiita

                                                                              現在(2020/05/05)使用している AtCoderなどの競プロ(Python用)のテンプレ! よかったら使ってください〜 (万が一間違いがあったらすいません!) #競プロテンプレ 1行目は削除して提出することが多いと思うので、 (入力時で)必ず使用するsysとそれ以外のライブラリ の2行に分けている! また、input()よりsys.stdin.readline().rstrip()の方が明らかに早い!!! 参考記事 [Pythonの知っておくと良い細かい処理速度の違い8個] (https://www.kumilog.net/entry/python-speed-comp#input-%E3%81%A8-sysstdinreadline) (2020/05/17追記) S()の位置をLS()の上に移動(見栄えがよくなかったため) import bisect,collections,c

                                                                                【Python】競プロテンプレ【AtCoder】 - Qiita
                                                                              • atcoder_testcases

                                                                                Shared with Dropbox

                                                                                  atcoder_testcases
                                                                                • https://cses.fi/book/book.pdf

                                                                                  新着記事