2018-02-01から1ヶ月間の記事一覧

競技プログラミング入門(仮

はじめに 言語は基本的にC++を使っています。プログラムの簡単な説明もある程度行いながら進めていきます。C言語などの予備知識があると読みやすいかもしれません。競技プログラミングとは 競技プログラミング(以下競プロ)とは、プログラミングを用いて…

ABC 088 の解説を書いてみる

初めて全完できたので Tasks - AtCoder Beginner Contest 088A問題 500円玉を無限に使えて、1円玉の数Aが与えられるとき、金額Nを払えるかどうかを出力。 解法 500円玉はいくらでも使えることから、500円玉で払えるだけ払った後の金額は、500で割った余りに…

AOJ 0298 Bus Timetable

AOJ

問題 路線バスの時刻表 | Aizu Online Judgeバスの時刻表の情報が2つ与えられるので、2つの時刻表をまとめて、早い時間から順に出力する。解法 とりあえずバスの時刻表を1つの配列にまとめて格納する。vectorとかにpush_backしていけば良い。 格納し終わ…

ABC 085 D Katana Thrower

問題 D - Katana Thrower N本の刀があり、それぞれの刀はAとBの攻撃力を持つ。無限回できる振る攻撃はAのダメージを与えて、1回しかできない投げつける攻撃はBのダメージを与える。投げてしまうと、その刀は使えなくなってしまう。Hの体力を削りきるための最…

yukicoder No.607 開通777年記念

問題 電車の乗り降りが行われる中で、任意の連続する車両の区間における、乗車数の和が777人となるタイミングがあるかどうかを判定する。 自分で作った問題なので、真面目に解説をします。解法 簡潔にいうと、乗車人数を累積和を用いて更新していきながら、…

ABC 032 C 列

問題 C - 列 要素数Nの数列の中で、全ての要素の積がKを超えないような、連続した最長の範囲の要素数を求める。解法 連続した範囲という言葉を聞いたら尺取り法を使うことを考えよう。尺取り法は、範囲の右端と左端の変数を用意して、範囲における特定の値が…

ARC 011 A 鉛筆リサイクルの新技術

問題 鉛筆の初期値Nがあり、m本あればn本新たに作ることができる。最終的に何本の鉛筆を売れるか。解法 まず、答えは「N+新たに生成された鉛筆」となる。以下のコードでは、resという現在手元にある鉛筆を格納する変数を作り(初期値はN)、答えとなる変数…

yukicoder No.646 逆ピラミッド

問題 No.646 逆ピラミッド - yukicoder 自作問題なので一応ね、、整数Nが与えられるので、Nで構成されたN段逆ピラミッドを左詰で出力しよう。 (コンテストとして出題されてから、これピラミッドじゃなくて階段だよなあ、と思うなどしました)解説 2重ルー…

yukicoder No.647 明太子

問題No.647 明太子 - yukicoder買う人が求める辛さ以上、価格以下を満たす明太子が買われていくとき、一番多く買われた明太子の数を求める。解法先に買う人に関する情報が与えられて、次に明太子の情報が入力される。まずは各入力を配列に格納した後、買われ…