並び順

ブックマーク数

期間指定

  • から
  • まで

481 - 520 件 / 1806件

新着順 人気順

atcoderの検索結果481 - 520 件 / 1806件

  • C言語で競技プログラミング(AtCoder)に挑む場合の入力・変換まとめ - Qiita

    はじめに 本記事では,C言語で競技プログラミング(主にAtCoder)に挑む場合の入力処理の方法についてまとめます. さらに,入力したデータを変換したい(例えば,文字列→数字,など)場合の処理についてもまとめます. もし,もっといい方法を知っている,とか,この入力の場合はどうすればいいですか,とかあればコメント等ください. (出力はprintfするだけなので,まとめませんでした…) 目次 入力 1行1列の数値の場合 1行複数列の数値の場合 1行1列の文字の場合 1行の文字列の場合 複数行の場合 変換 文字列の長さを調べる 文字から数字への変換

      C言語で競技プログラミング(AtCoder)に挑む場合の入力・変換まとめ - Qiita
    • 【AtCoder解説】PythonでABC242のA,B,C,D,E問題を制する! - Qiita

      ※表示レート、灰に初参加者は含めず A問題『T-shirt』 問題ページ:A - T-shirt 灰コーダー正解率:91.1 % 茶コーダー正解率:97.7 % 緑コーダー正解率:97.6 % 入力 $A$ : 上位 $A$ 位までの参加者は必ずTシャツをもらえる $B,\ C$ : $A+1$ 位から $B$ 位 までの参加者のうち、ランダムに選ばれた $C$ 人もTシャツをもらえる $X$ : いろはちゃんの順位 考察 答えは以下の通りです。<と<=を間違えないように気をつけましょう。 $X\le{A}$ : $1$ (必ずもらえるため) ${A+1}\le{X}\le{B}$ : $\dfrac{C}{B-A}$ ($B-A$ 人のうち $C$ 人がもらえるため) $B\lt{X}$ : $0$ (もらえない) コード def solve(): A, B, C, X = map(in

        【AtCoder解説】PythonでABC242のA,B,C,D,E問題を制する! - Qiita
      • ac-library-rb で解く AtCoder ABC 137 D - Qiita

        はじめに AtCoder Problems の Recommendation を利用して、過去の問題を解いています。 AtCoder さん、AtCoder Problems さん、ありがとうございます。 今回のお題 AtCoder Beginner Contest D - Summer Vacation Difficulty:1313 今回のテーマ、優先度付きキュー ac-library-rb は、AtCoder Library (ACL)のRuby版です。 その ac-library-rb がなんとGem化されています。 ac-library-rb (rubygems) AtCoderにインストールされる日が待ち遠しいですね。 優先度付きキュー # Priority Queue # Reference: https://github.com/python/cpython/blob/mas

          ac-library-rb で解く AtCoder ABC 137 D - Qiita
        • [Ruby] AtCoder過去問 C - Count Order - Qiita

          n = gets.to_i p_ary = gets.split.map(&:to_i) q_ary = gets.split.map(&:to_i) さて、どうしたもんかと、組み合わせの配列をどうやって作ろうかめちゃめちゃ悩みました。 しかし、しっかりrubyには便利なメソッドが準備されていました。 それがpermutationメソッドです。 配列の組み合わせを返してくれます。array.permutation(n).to_aという形で記述すると配列の中にそれぞれのパターンが配列として出来上がります。 例[[1, 2, 3], [1, 3, 2], [2, 1, 3]...] こんな感じです。 引数に対象とする数を指定します。今回の場合は全てなのでnでオッケーです。 ここで気をつけたいことで、問題では辞書順にしなければなりません。 例えば、入力例1のpをpermutationにかけても全

            [Ruby] AtCoder過去問 C - Count Order - Qiita
          • AtCoder-ABC212 D - Querying Multiset【Python解答例】 - ebisukeプログラミング初心者脱出黙示録

            AtCoder Beginner Contest212のD問題についてPythonの解答例を記事にしていきます。 AtCoder Beginner Contest 212 - AtCoder AtCoder Beginner Contest212 D - Querying Multiset D - Querying Multiset 問題文 高橋君は何も書かれていないたくさんのボールと 1 つの袋を持っています。 最初、袋は空で、高橋君は Q 回の操作を行います。 それぞれの操作は以下の 3 種類のうちのいずれかです。 ・操作 1 : まだ何も書かれていないボール 1 つに整数 Xi を書き込み、袋に入れる。 ・操作 2 : 袋に入っているすべてのボールについて、そこに書かれている数を、それに Xi を加えたものに書き換える。 ・操作 3 : 袋に入っているボールのうち書かれている数が最小

              AtCoder-ABC212 D - Querying Multiset【Python解答例】 - ebisukeプログラミング初心者脱出黙示録
            • AtCoder QQ

              AtCoder QQ AtCoder のコンテスト結果を、最高順位が含まれる形で九九の表形式で表示します developed by @tsutaj アプリケーションに関するお問い合わせは GitHub の issue からお願いします

              • [Ruby] AtCoder過去問 C - Prison - Qiita

                n, m = gets.split.map(&:to_i) ary = readlines(chomp: true).map{|line| line.split.map(&:to_i)} 2行目は複数行に複数要素が存在するときに二重配列として受け取ります。 入力例1でいえば[[1, 3], [2, 4]]という感じで受け取ります。 この問題の答えの法則はRの中の最小値とLの中の最大値の差に+1した数字が答えになります。 現在の配列では扱いにくいのでL(左側)だけをまとめた配列とR(右側)だけをまとめた配列を作ります。 n, m = gets.split.map(&:to_i) ary = readlines(chomp: true).map{|line| line.split.map(&:to_i)} l_ary = [] r_ary = [] ary.each do |a| l_ary

                  [Ruby] AtCoder過去問 C - Prison - Qiita
                • AtCoderのレート計算式 - Qiita

                  この記事はAtCoder公式が出しているレート計算式の説明PDFの内容を解説しようと試みるものである。 AtCoder公式によるレート計算式の説明はPDF3ページに収まる非常に簡潔なものなのだが、その分背景知識や式の設計意図が大幅に省略されていて、原文を読むだけでは理解に悩む箇所も少なくない。 そこで、省略されている箇所をAtCoder公式の発言や私の予想で補って、できるだけわかりやすく解説しようとするのがこの記事の目的である。 この記事の目的上、この記事はAtCoder公式による説明を正確に理解するには全く向いていない。 私の予想が混じっているからである。 私の予想の部分はできる限りそうだと明示するようにするが、信頼できるソースを求めるのであれば原文を読むようにしてほしい。 また、私の数学力が足りていないために、式の設計意図を私が勝手に予想することすらできなかった箇所もある。 その部分は

                    AtCoderのレート計算式 - Qiita
                  • Atcoder典型90問 004 - Cross Sum - Qiita

                    Atcoder典型90問 004 - Cross Sum(★2) ▶︎https://atcoder.jp/contests/typical90/tasks/typical90_d 問題 H 行 W 列のマス目があります。上から i (1≤i≤H) 行目、左から j (1≤j≤W) 列目にあるマス (i,j) には、整数 A(i,j)が書かれています。 すべてのマス (i,j) (1≤i≤H,1≤j≤W) について、以下の値を求めてください。 マス (i,j) と同じ行または同じ列にあるマス(自分自身を含む)に書かれている整数をすべて合計した値 制約 試したこと 各マスに対して愚直に行/列の足し算を行うと、最低でもO(HW * [H + W])となりPythonには荷が重い計算量になる。 あとでわかったことだが、input時以外にO(N^2)の計算が入った時点でほぼ詰んでしまう。 その理由

                      Atcoder典型90問 004 - Cross Sum - Qiita
                    • Pythonで解くAtCoder Beginners Selection(自分用) - Qiita

                      1日でぶわぁぁぁぁぁぁっと解きました. PracticeA - Welcome to AtCoder ・標準入力を受け取るにはinput()を使う a = int (input()) b, c = map (int, input().split()) s = input() print(a + b + c, "", s )

                        Pythonで解くAtCoder Beginners Selection(自分用) - Qiita
                      • 【AtCoder解説】PythonでABC158のA, B, C問題を制する ! - Qiita

                        ※表示レート、灰に初参加者は含めず 簡易解説 A問題 (6954人AC)『Station and Bus』 文字列が全部同じ文字か判定します。 B問題 (5837人AC)『Count Balls』 算数です。 C問題 (5456人AC)『Tax Increase』 全探索です。 D問題 (3533人AC)『String Formation』[この記事では解説しません] 実際に文字列を反転させる操作をすると、TLEになります。 dequeかリストを2つ使って、文字列の先頭と末尾に追加された文字を管理するといいです。 なお、PyPyは文字列の連結に+=演算子を使うと非常に遅いため、TLEになります。 dequeを使うか、リストを使って最後に"".join(A)で文字列にするといいです。 E問題 (408人AC)『Divisible Substring』[この記事では解説しません] DPですが、

                          【AtCoder解説】PythonでABC158のA, B, C問題を制する ! - Qiita
                        • 【AtCoder用】標準入力メモ - Qiita

                          Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

                            【AtCoder用】標準入力メモ - Qiita
                          • Go で競技プログラミング攻略2 (AtCoder Beginners Selection 7~) - Qiita

                            はじめに この記事は自分のためにメモとして書いてあるので書き方はテキトー 間違っていたりこうしたらいいよっていうのは教えていただけるとありがたいです 競プロはマジの初心者スタートでやっていきたいと思います ABC088B - Card Game for Two 人とも自分の得点を最大化するように最適な戦略を取った時, Alice は Bob より何点多く取るか求めてください. つまりは、順番に最大の数を取っていくということか。 sortパッケージを使うと一発でソートしてくれる最高 たくさん読み込めるようにするため以前作ったこれを使用 //文字列を1列入力 func scanStringLine() string { var strLine string scanner := bufio.NewScanner(os.Stdin) scanner.Scan() strLine = scanne

                              Go で競技プログラミング攻略2 (AtCoder Beginners Selection 7~) - Qiita
                            • AtCoder 最速で緑になる 基礎・典型50問詳細解説 コピペ用コード - Qiita

                              本記事は拙著『AtCoder 最速で緑になる 基礎・典型50問詳細解説』のコピペ用コード集ですです。 値段:100円(Kindle Unlimited対象) 【kindle】 https://www.amazon.co.jp/dp/B0BBB7RKTP 【booth(pdf)】 https://booth.pm/ja/items/4102300 冒頭5問をサンプルとして無料公開しています。 https://qiita.com/sano192/items/6361ed72106cb6dd5843 1 入力と出力 ABC205 A Dif:6

                                AtCoder 最速で緑になる 基礎・典型50問詳細解説 コピペ用コード - Qiita
                              • crystal の AtCoder における Deque の使用による速度改善 - Qiita

                                はじめに AtCoder さん、いつもお世話になっております。 私は、下記のトランスパイラを夢見ている者ですが、Dequeの使用により実行時間の改善が見られましたので、ここに投稿いたします。 003 - Longest Circular Road(★4) n = read_line.to_i - ab = Array.new(n + 1){ [] of Int32 } + ab = Deque.new(n + 1){ [] of Int32 } - f = Array.new(n + 1, 0) + f = Deque.new(n + 1, 0) (n - 1).times do a, b = read_line.split.map(&.to_i) ab[a] << b ab[b] << a end - que = [] of Int32 + que = Deque(Int32).new

                                  crystal の AtCoder における Deque の使用による速度改善 - Qiita
                                • 【SCC編】AtCoder Library 解読 〜Pythonでの実装まで〜 - Qiita

                                  0. はじめに 2020年9月7日にAtCoder公式のアルゴリズム集 AtCoder Library (ACL)が公開されました。 私はACLに収録されているアルゴリズムのほとんどが初見だったのでいい機会だと思い、アルゴリズムの勉強からPythonでの実装までを行いました。 この記事ではsccをみていきます。 ACLでは scc と internal_ecc が存在し、internal_scc が本体、scc がインターフェイスのようになっています。これは、scc のアルゴリズムを他(twosat)でも使うためです。なので、ACLの実装を見たい場合はinternal_scc.hppを見てください。 対象としている読者 sccってなに?という方。 sccを理解し自分で実装できるようにしたい方。 ACLのコードを見てみたけど何をしているのかわからない方。 C++はわからないのでPythonで

                                    【SCC編】AtCoder Library 解読 〜Pythonでの実装まで〜 - Qiita
                                  • AtCoder ABC252の復習だ - Qiita

                                    はじめに C問題が解けなかったため、まとめようと思います。 C問題 |0|~|9|のリールを持つスロットがある。 経過時間をt秒とすると、以下に対応する秒数でボタンを押すことができる。 下の例では0秒時点で|1|-|8|-|2|が並ぶ。 1列目 2列目 3列目 |1| |8| |2| < (t % 10) == 0 |9| |1| |3| < (t % 10) == 1 |3| |2| |8| . |7| |4| |5| . |4| |6| |7| . |5| |9| |6| < (t % 10) == 5 |8| |0| |0| . |0| |3| |1| . |6| |5| |4| . |2| |7| |9| < (t % 10) == 9 例えば|1|で揃えたい場合は 0秒後に1列目のボタンを押す 1秒後に2列目のボタンを押す 7秒後に3列目のボタンを押す つまりこのケースでは|1|

                                      AtCoder ABC252の復習だ - Qiita
                                    • 初心者によるatcoder(1回目):001 - Print 5+N - Qiita

                                      10/28の演習記録です。 ご意見やいいねをいただけると喜びます。 【演習問題】 https://atcoder.jp/contests/math-and-algorithm/tasks/math_and_algorithm_a 【問題文】 【ソースコード】 apple = 5 mikan = input() mikan_int = int(mikan) #input()はstr型のためint型に変換した。 if 1 <= mikan_int <= 100: print(apple + mikan_int) else: print("不正な値です")

                                        初心者によるatcoder(1回目):001 - Print 5+N - Qiita
                                      • Atcoder参加記録 ABC257 PythonでC~E - Qiita

                                        from collections import defaultdict def main(): """解答方針 ①体重Wを軽い順にソート ②まずX=0とした時の正解の数=大人の数をcorrectとして記録 ③次にXをWの中で一番小さな値wよりわずかに大きな値とする - 重さwにいる人を”子供"と判定するようになる - その人が子供なら、正解が1つ増えるのでcorrectを1増やす(correct += 1) - その人が大人なら、正解が1つ減るのでcorrectを1減らす(correct -= 1) ④XをWの中で次に小さい数にして同様に判定、これをソートしたW全てで行う その中でcorrectの最大値を答えansとして保存する 同じ重さwに複数の人がいる場合、重さwに大人がx人、子供がy人いるのであれば 正解数は(y-x)増えるので、それぞれの重さwについて、 正解の増減を先に計算しd[

                                          Atcoder参加記録 ABC257 PythonでC~E - Qiita
                                        • AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita

                                          本記事を終えた次は? AtCoder Beginners Selection を終えたら、AtCoder 上の過去問が AtCoder Problems に集大成されていますので、片っ端から埋めるような気持ちで精進していきましょう。本記事の続編として AtCoder 版!蟻本 (初級編) AtCoder 版!蟻本 (中級編) AtCoder 版!蟻本 (上級編) AtCoder 版!蟻本 (発展的トピック編) も執筆しましたので参考にしていただけたらと思います。また、アルゴリズムとデータ構造に関するトピックを集大成した書籍として、 問題解決力を鍛える!アルゴリズムとデータ構造 (通称、けんちょん本) を上梓しました。ぜひ読んでみてください。 1. AtCoder とは AtCoder は以下のコンテストサイトを運営しています。今後常に訪れることになるサイトです: AtCoder コンテスト

                                            AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita
                                          • Typical DP Contest (Atcoder) のA問題をプログラム初心者が考えてみた part1 bit全探索 - Qiita

                                            Typical DP Contest (Atcoder) のA問題をプログラム初心者が考えてみた part1 bit全探索PythonAtCoder競技プログラミングbit全探索 はじめに 自分はPythonを勉強し始めたばかりの初学者であるが、Qiitaで頻繁に見かけるAtCoder(所謂競技プログラミングってやつ?)というやつが気になった。 ただ自分は本当にまだプログラミングの世界に触れたばかりなので、ぶっちゃけプログラミングで競技する程の実力など無いし、さほど競う事に興味は持っていない。 ただ、其処で出題されていたA問題を見て、その問題自体はとても興味深く、どのようにプログラムとして解くか悩んだため、初学者なりに 自分で考えてみることにした。 また、この記事が自分と同じようなプログラム初学者達にとって、少しでも参考になればと思う。 ちなみにA問題 ↓ 出題内容 Problem Sta

                                              Typical DP Contest (Atcoder) のA問題をプログラム初心者が考えてみた part1 bit全探索 - Qiita
                                            • Python(とPyPy)でAtCoder黄色になりました - sima(mu)*雑記

                                              この度第二回全国統一プログラミング王決定戦予選で黄色になりました!!!!!!わーい!! 最高パフォ&はいえすと&黄色&予選通過確定です!!!!!!!!!!!!!!!!!!ありがとうございます!! pic.twitter.com/z10Yd5js5X— しまむむ (@simamumu) 2019年11月9日 のでいわゆる変色記事とか言うやつを書いてみたいと思います 別にこういう勉強法が良いよ!とかこういうことするとレートが上がるよ!みたいな有益な話はそんなないと思います わりと日記な感じなのでごめんなさい お前は誰 東京の工業な大学のの†土木工学系†に所属している B4です 土木についてあまりイメージがわかない人は講義でFORTRANをやらされる学部だと思っておけばよいです プ歴(≒競プロ歴)は2年くらい B1の教養科目でちょろっと触ってたけど,本格的にプログラミングを勉強し始めたと言えるの

                                                Python(とPyPy)でAtCoder黄色になりました - sima(mu)*雑記
                                              • 『『ウマ娘』最強育成法理論編・実践編!競技プログラミングの会社・AtCoder代表取締役社長のchokudaiさんによる解説がすごい分かりやすい』へのコメント

                                                まとめありがとうございますー。理論内にSSRが必要とか一切書いてないのに、適当に作ったステータスしか見てない人が多くて悲しい……。とはいえ、課金額が多いほうが強くなるのは間違いないです。

                                                  『『ウマ娘』最強育成法理論編・実践編!競技プログラミングの会社・AtCoder代表取締役社長のchokudaiさんによる解説がすごい分かりやすい』へのコメント
                                                • 土木とITをつないだプログラミングコンテストという選択肢--鹿島建設とAtCoderの新たな挑戦

                                                  鹿島建設のイメージが「どうして」から「面白そう」に変わる瞬間 ――エンジニアにとっていい環境をどうやって整備されていったのですか。 三浦氏 A4CSELの開発に関しては、これまでにない建設生産システムを創り出そうと、コンセプト作りの部分から意見を出し合って決め、現状技術では難しい部分が出たら、今の作業のやり方自体を変えられないかなど、工夫の範囲や余白を多く残しているつもりです。建設現場で使うものですから、適用する時の制約はいろいろありますが、そこを自分たちで考えながら、少しずつでも前に進むという文化にしています。 また「期限は◯◯まで」ではなく、目標で管理する形にしています。研究的要素も多いので、日常の進捗よりも、目標設定をして、そこにどうやって到達していくか、最新技術が開発されたときにどの部分を取り入れるのか、一人ひとりが考えながら仕事をしていける環境にしています。 高橋氏 こういうお話

                                                    土木とITをつないだプログラミングコンテストという選択肢--鹿島建設とAtCoderの新たな挑戦
                                                  • AtCoderで始めるCOBOL入門 ~演習編~ - 徒然

                                                    はじめに 前々回の記事、前回の記事でCOBOLの基礎知識について記載してきました。 では実際に、AtCoderに登録したら解くべき精選過去問10問ことAtCoder Beginners Selectionの問題を解いていきます。 はじめに 0. PracticeA : Welcome to AtCoder 1. ABC086A : Product 2. ABC081A : Placing Marbles 3. ABC081B : Shift only 4. ABC087B : Coins 5. ABC083B : Some Sums 6. ABC088B : Card Game for Two 7. ABC085B : Kagami Mochi 8. ABC085C : Otoshidama 9. ABC049C : 白昼夢 10. ABC086C : Traveling 最後に 0. P

                                                      AtCoderで始めるCOBOL入門 ~演習編~ - 徒然
                                                    • Ruby で嵌る AtCoder ABC 169 C 浮動小数点 - Qiita

                                                      はじめに 「AtCoderは、世界最高峰の競技プログラミングサイトです。 リアルタイムのオンラインコンテストで競い合うことや、 3,000以上の過去問にいつでもチャレンジすることができます。」 を利用して、プログラミングの勉強をしています。 AtCoder さん、ありがとうございます。 今回のお題 AtCoder Beginner Contets C - Multiplication 3 Difficulty: 536 今回のテーマ、浮動小数点による誤差 浮動小数点数 -WikiPedia

                                                        Ruby で嵌る AtCoder ABC 169 C 浮動小数点 - Qiita
                                                      • AtCoder Beginner Contest 165の復習, E問まで(Python) - Qiita

                                                        競プロ初心者の復習用記事です。 ここで書く解は解説や他の人の提出を見ながら書いたものです。自分が実際に提出したものとは限りません。 A - We Love Golf KがA以上B以下の範囲に含まれているか答える問題です。 $1\leq A \leq B \leq 1000$, $1\leq K \leq 1000$という制約から、単純に$A$から$B$までの範囲で条件を満たす値があるか探索すれば問題ないです。 N = int(input()) A, B = map(int, input().split()) for i in range(A, B+1): if i % N == 0: print('OK') break else: print('NG') B - 1% 預けた100円に1%の年利が付くとき、与えられた金額X円を超えるのは何年後か答える問題です。 小数点以下となる金額は切り捨

                                                          AtCoder Beginner Contest 165の復習, E問まで(Python) - Qiita
                                                        • AtCoder Beginner Contest 160 参戦記 - Qiita

                                                          package main import ( "bufio" "fmt" "os" "sort" "strconv" ) func max(a, b int) int { if a > b { return a } return b } func main() { X := readInt() Y := readInt() A := readInt() B := readInt() C := readInt() p := make([]int, A+1) q := make([]int, B+1) r := make([]int, C+1) for i := 0; i < A; i++ { p[i+1] = readInt() } for i := 0; i < B; i++ { q[i+1] = readInt() } for i := 0; i < C; i++ { r[i+1] = r

                                                            AtCoder Beginner Contest 160 参戦記 - Qiita
                                                          • 電通、電通九州、九州大学、AtCoder、イマーゴが、「アルゴリズム思考」による高度IT人材の育成に向け包括的な協定 - News(ニュース) - 電通ウェブサイト

                                                            News Release corporate 2020年08月06日 事業・サービス 電通、電通九州、九州大学、AtCoder、イマーゴが、「アルゴリズム思考」による高度IT人材の育成に向け包括的な協定 株式会社電通(本社:東京都港区、代表取締役社長執行役員:五十嵐 博)は、株式会社電通九州(本社:福岡市、代表取締役社長執行役員:鈴木 亨)、国立大学法人九州大学(所在地:福岡市、総長:久保 千春)、AtCoder株式会社(本社:東京都新宿区、代表取締役社長:髙橋 直大)、株式会社イマーゴ(本社:東京都港区、代表取締役:神尾 寿)と包括的な協定を本日締結し、「アルゴリズム思考※」の学習に関する共同研究と地域課題解決に向けた協働事業、高度IT人材育成などを実施します。

                                                              電通、電通九州、九州大学、AtCoder、イマーゴが、「アルゴリズム思考」による高度IT人材の育成に向け包括的な協定 - News(ニュース) - 電通ウェブサイト
                                                            • Atcoder エイシングプログラミングコンテスト Python (A~C) - Qiita

                                                              N = int(input()) a = list(map(int, input().split())) count = 0 for i in range(0, N, 2): if i % 2 == 0 and a[i] % 2 != 0: count += 1 print(count) N = int(input()) keys = [i for i in range(1, N+1)] values = [0] * N count_dict = dict(zip(keys, values)) for x in range(1, N//6+7): for y in range(x, N//6+7): for z in range(y, N//6+7): n = x**2 + y**2 + z**2 + x*y + y*z + z*x if n > N: break if x == y an

                                                                Atcoder エイシングプログラミングコンテスト Python (A~C) - Qiita
                                                              • AtCoder ABC 116 D - Various Sushi (青色, 400 点) - けんちょんの競プロ精進記録

                                                                学び多き問題。 僕にとっては後半のデータ構造パートが苦戦を強いられ、本当に勉強になった! 問題へのリンク 問題概要 個の寿司があって、それぞれネタ と美味しさ をもっている。この中から 個の寿司を選びたい。選んだ寿司集合のスコアは 選んだ寿司の美味しさの総和 選んだ寿司に含まれるネタの種類数を として の合計値で決まる。スコアの最大値を求めよ。 制約 考えたこと この手の最適化問題では ある量を決めるとどうすべきかが Greedy に決まらないか 「こういうものだけ探索すればよい」というのが絞れないか をひたすら考えることになる。こういう考察を意識的にやることは高難易度でも有効なイメージ。この問題では 選ぶネタの種類数 を固定したくなる。 を決めると最適解が自然に決まるのではないかと考えたくなる。ここでしばしばやる注意点として 選ぶネタの種類がちょうど でなければならない としてしまうと考

                                                                  AtCoder ABC 116 D - Various Sushi (青色, 400 点) - けんちょんの競プロ精進記録
                                                                • [AtCoder] ABC 116 C – Grand Garden | ヤマカサの競技プログラミング

                                                                  方針 最適な水やりの方法 水やりの操作回数を最小化するには、連続した区間 \( [l, r ]\) が大きくなるように水をやる必要があります。つまり、連続して水やりをできる区間は一回の操作で高さを \( 1 \) 上げるというようにします。 最小回数の計算 左端から水やりを連続した区間に行うようにします。このとき、最低でも \(h_1 \) 回の操作が必要になります。次に隣の花の高さに注目します。 \( h_1 < h_2 \) のとき このとき、\(h_1 \) 回水やりをしたとしても、花 \( 2 \) の高さは \(h_1 \) となるので、さらに追加で \( h_2 – h_1 \) 回の操作が必要になります。 \( h_1 > h_2 \) のとき このとき、\( h_1 \) 回水やりを行う途中で、花 \( 2 \) の高さは \( h_2 \) となっています。したがって、途

                                                                    [AtCoder] ABC 116 C – Grand Garden | ヤマカサの競技プログラミング
                                                                  • RubyでAtCoder ABC256(A, B, C, D)を解いてみた - Qiita

                                                                    # 修正前 n = gets.to_i a = gets.split.map(&:to_i) ans = 0 array = Array.new(4, 0) n.times do |i| array[0] = 1 4.downto(0) do |j| if array[j] == 1 if j + a[i] >= 4 ans += 1 array[j] = 0 else array[j], array[j + a[i]] = 0, 1 end end end end puts ans n = gets.to_i a = gets.split.map(&:to_i)[-3..] array = [] a.each do |hit| array.concat ([1] + [0] * (hit - 1)) end puts n - array[-3..].sum

                                                                      RubyでAtCoder ABC256(A, B, C, D)を解いてみた - Qiita
                                                                    • RubyでAtCoder ABC231(A, B, C)を解いてみた - Qiita

                                                                      はじめに Webエンジニアを目指して、RubyやRailsをいじってます。 今回は、RubyでAtCoder ABC231のA, B, Cを解きました。備忘録として解き方をまとめていきたいと思います。 A - Water Pressure

                                                                        RubyでAtCoder ABC231(A, B, C)を解いてみた - Qiita
                                                                      • 【色変記事】AtCoder水色になるまでにやって良かったこと - Qiita

                                                                        はじめに ABC272で入水することができました! 本記事では、水色になるために個人的にやって良かったことを中心に書きます。 やってよかったこと一覧 使用言語をPythonに変更 典型90問 解けなかった問題の復習 スニペット・ライブラリの用意 周辺機器の購入 使用言語をPythonに変更 本業(Webアプリ開発)でC#を使用していたので、初めのころはC#で競プロをしていましたが、 以下の理由でPythonに切り替えました。 Pythonに切り替えた理由 文法がシンプル 文法がシンプルなため、コーディング速度があがりました。 解説が多い C++ほどではありませんが、解説記事が多いです。 解説をアップしてくださる方には感謝しかないです。 Pythonに興味があった 人気が高く、様々な種類の開発で利用できる言語ということで興味がありました。 典型90問 競プロ典型90問の★4までを解きました。

                                                                          【色変記事】AtCoder水色になるまでにやって良かったこと - Qiita
                                                                        • AtCoder 水色到達メモ - Qiita

                                                                          0. 使用言語 pypy3で基本提出してます。pypy3でTLEするときはpythonで提出してます。 (pypy3でTLEするときは、Decimal型や再帰関数を使うときなど。このときにpythonで提出してます) 1. ようやく到達 水色到達までものすごく時間かかりました。 緑まではすぐに行ったので、水色も行けるかと思ってたのですが、全然甘くなかったですね。 2020年3月28日から参加して、そこからほぼ毎週欠かさず参加しました。結果コンテスト参加回数117回。 毎週参加していたら、いつかは水色いけるだろうと思っていたのですが、 たまにパフォーマンスが水色行ったり、茶色になったりで、レートが上がったり下がったりの繰り返しで 1000~1100レート付近で往復してました。 2021年9月あたりで、一気に100レート溶かして、さすがに勉強しないと水色は無理だなと把握しました。 2021年1

                                                                            AtCoder 水色到達メモ - Qiita
                                                                          • 【AtCoder解説】PythonでABC228のA,B,C,D問題を制する! - Qiita

                                                                            ※表示レート、灰に初参加者は含めず A問題『On and Off』 問題ページ:A - On and Off 灰コーダー正解率:81.3 % 茶コーダー正解率:94.8 % 緑コーダー正解率:97.3 % 史上最高に難しいA問題でした。私も5分と1WAを使いました。 入力 $S$ : $S$ 時 $0$ 分に電気がつく $T$ : $T$ 時 $0$ 分に電気が消える $X$: $X$ 時 $30$ 分に電気がついているか判定する ※電気がついている間に日付が変わる場合がある($S<T$ とは限らない) 考察 日付をまたがない場合(S < T) 日付をまたがない場合($S<T$)を考えます。$S$ 時 $30$ 分には電気がついています。$T-1$ 時 $30$ 分までは電気がついていますが、$T$ 時 $30$ 分には既に電気が消えています。 よって、電気がついている条件は $S\le{

                                                                              【AtCoder解説】PythonでABC228のA,B,C,D問題を制する! - Qiita
                                                                            • Atcoder ABC227-D Project Planningの図による考え方 - Qiita

                                                                              解説を読んでこの天才解法は思いつかないのでは..と思っていたんですが、結局自分の考え方と全く一緒だったのでメモ。 こう考える まず、この問題を以下のように言い換えましょう。(と、簡単に書いていますが、コンテスト中はこの言い換えはできませんでした) 1x1のn色のブロックをAi個ずつ持っています。 (各部署の人がAi人ずついます) なるべく大きなP行k列の長方形を作りたいです (k人のP個のプロジェクトを作りたいです) ただし、ある行に(離れていても)同じ色があってはいけません。(同じプロジェクトに同じ部署の人がいてはいけません) 問:作れる最大のPを求めてください これを図にします。 $k=4$ときに、$P=6$が作れるかを判定したいとします。この際に、部署の人数をソートする必要はありません。上と下では、部署の人数が少しだけ違います。 さて、条件は行 = 横に同じ色があってはいけませんでし

                                                                                Atcoder ABC227-D Project Planningの図による考え方 - Qiita
                                                                              • AtCoder Beginner Contest 208 参戦記 - Qiita

                                                                                A, B = map(int, input().split()) if A <= B <= 6 * A: print('Yes') else: print('No') ABC208B - Factorial Yen Coin 6分で突破. n! は (n-1)! の倍数なので、大きい硬貨が使えるときに、小さい硬貨を使ったほうが枚数が少なくなるパターンはない. なので大きい硬貨から順に使えるかチェックしていけばいい. P = int(input()) x = 3628800 # 10! y = 10 result = 0 while P != 0: n = P // x if n != 0: result += n P -= n * x x //= y y -= 1 print(result)

                                                                                  AtCoder Beginner Contest 208 参戦記 - Qiita
                                                                                • Typical DP Contest (Atcoder) のA問題をプログラム初心者が考えてみた part3 貰うDP編 - Qiita

                                                                                  前回はこちら↓↓ part2では、 $i$ 問目が解けた時点での合計点の集合 $S_i$ を、 $i$ が $1$ の時から $N$ になるまで下から順に考えていくボトムアップ方式(配るDP)を採用し、プログラムを完成させた。 その結果、part1で作成したbit全探索型のプログラムとは比較にならないほど高速に演算することが出来た。 今回このpart3ではpart2とは逆に、 $i$ が $k$ のとき、 $k-1$ を考える、というような。上から下へトップダウン方式(貰うDP)の考え方で作成していこうと思う。 使用する問題は同じくTypical DP Contest の A問題 ↓↓ 考え方 以前$i$ 問目を解き終えた時にとりうる合計点の集合 $S_i$ を考えたが 今回は少し考え方を変えようと思う。 $i$ 問目を解き終えた時に合計点 $j$ を取りうるかどうかを、真偽値 $dp[i

                                                                                    Typical DP Contest (Atcoder) のA問題をプログラム初心者が考えてみた part3 貰うDP編 - Qiita