2019-04-30から1日間の記事一覧
https://atcoder.jp/contests/iroha2019-day1/tasks/iroha2019_day1_h 解説 https://atcoder.jp/contests/iroha2019-day1/submissions/5195896基本方針は19999や299のように、 なるべく桁数を少なくするために9でまとめる 余りは先頭に置く として作っていけ…
https://atcoder.jp/contests/iroha2019-day1/tasks/iroha2019_day1_g 前提知識 動的計画法 解説 https://atcoder.jp/contests/iroha2019-day1/submissions/5195581DPで解く。 dp[i][m] := i日目に好意をほのめかし、今までm回好意をほのめかしているときの…
https://atcoder.jp/contests/iroha2019-day1/tasks/iroha2019_day1_f 前提知識 素因数分解 解説 https://atcoder.jp/contests/iroha2019-day1/submissions/5194885数列を見てみると、因数分解をしている感じになっている。 さて、どこから始めようか。 まず…
https://atcoder.jp/contests/iroha2019-day1/tasks/iroha2019_day1_e 解説 https://atcoder.jp/contests/iroha2019-day1/submissions/5195243デートを行う記念日には競プロはできないので、記念日間でできる日数を数える。 各記念日間では独立に考えること…
https://atcoder.jp/contests/iroha2019-day1/tasks/iroha2019_day1_d 解説 https://atcoder.jp/contests/iroha2019-day1/submissions/5194591高橋君と青木くんが順番にレスラーを取っていくが、 戦闘力が高いレスラーから先に選ぶのが、戦略としては最善な…
https://atcoder.jp/contests/iroha2019-day1/tasks/iroha2019_day1_c 解説 https://atcoder.jp/contests/iroha2019-day1/submissions/5194348問題で要求されていることをそのまま実装しよう。 差分dを-7から0までforで回して答えていく。 int N; //--------…
https://atcoder.jp/contests/iroha2019-day1/tasks/iroha2019_day1_b 解説 https://atcoder.jp/contests/iroha2019-day1/submissions/5194416操作をK回施しても間に合うので、施そう。 dequeを使って、先頭から取り出して末尾に追加するをK回行う。 あとは…
https://atcoder.jp/contests/iroha2019-day1/tasks/iroha2019_day1_a 解説 https://atcoder.jp/contests/iroha2019-day1/submissions/5194042先頭文字をとってくればいいので、C++ならばsubstrを使えばいい。 string S; //--------------------------------…
N個のマッチの山がある。 ここから以下の操作を順番に繰り返す。1. マッチが1つもないなら負け 2. 1つの山を選び、1つ以上とる 3. 取ったマッチ1つにつき、1つの山を全て燃やすことができる(取った山を燃やしてもいい) 4. 使わなかった取ったマッチは捨て…
C匹のムカデがいる。 各ムカデはF本の足がある。 あるムカデには同じ色の靴下を履かせたい。N種類の靴下があり、それぞれ数がわかっている。 全て1つの瓶に入っていて、ランダムに取り出していく。 全てのムカデに同色の靴下を履かせるときに、取り出す靴下…
https://codeforces.com/contest/1149/problem/BN文字の文字列Sがある。 3つの文字列スタックがある。 これに対してQ回以下のクエリを行う。1. 「+ i c」i番目の文字列キューの末尾にcを入れる 2. 「- i」i番目の文字列キューの末尾をpopする各クエリ後に以…
https://codeforces.com/contest/1149/problem/A1と2からなるN要素の配列Aがある。 これを並び替える操作をする。 操作後に、B[i] = A[0] + A[1] + ... + A[i]である累積和配列Bを作る。 適切に操作をして、配列Bに含まれる素数の数が最大である配列Aを答え…