AtCoder Beginner Contest 302 A問題 Attack
問題
提出解答
問題の概要
体力が のモンスターが居る.
このモンスターの体力を 以下にするためには, 回の攻撃で体力を 減らせる攻撃を最低何回する必要があるか?
制約
解法
求めるべき答えは である. しかし, これを求める場合, 次の違いにしなければならないことがたくさんある.
- 整数の型 (int 型, long 型)
- 整数を整数で割った商には実数の商と整数の商があること.
- 切り捨てと切り上げ
を切り捨てを用いて求める方法としては次のような方法がある.
(1)
(2)
ここで, はそれぞれ は の倍数である (倍数ではない) という意味である.
AtCoder Beginner Contest 301 C問題 AtCoder Cards
問題
提出解答
問題の概要
英小文字と からなる長さが等しい文字列 がある. この に対して, 以下の操作を順に行う.
- にある をそれぞれ のどれかに置き換える.
- を適用に並び替える.
にすることは可能か?
制約
- は英小文字と からなる長さ 以上 以下の文字列.
解法
文字列 に含まれる の数を と書く. ここで, 並び替えが自由にできるので, 結局は にのみ着目すれば良いことがわかる.
このとき, ではない英小文字 については でなくてはならない.
一方で, のどれかである英小文字については, を比較し, 小さい方の文字列における をその差分だけ に置き換えなければならず, 実際に, その差だけ置き換えれば良い.
この置き換えによって, が不足してしまうと, 不可能であり, 不足しなければ可能である.
AtCoder Beginner Contest 301 B問題 Fill the Gaps
問題
提出解答
問題の概要
長さ の整数列 がある. ここで, 隣り合う項は全て異なることが証明できる.
このとき, に対して, 以下の操作を行う.
- の隣り合う項の差の絶対値が である場合は操作を終了する.
- において, 隣り合う項の差の絶対値が でない最初の箇所を とする.
- ならば, の間に を挿入する.
- ならば, の間に を挿入する.
操作後の を求めよ.
制約
- .
- .
- .
解法
次のようにして操作後の を求めることができる.
- を空列とする.
- に を挿入する.
- に対して, 以下を行う.
- ならば, の末尾に を挿入する.
- ならば, の末尾に を挿入する.
- が答え.
AtCoder Beginner Contest 301 A問題 Overall Winner
問題
提出解答
問題の概要
高橋君と青木君が 回の試合を行った. この結果は長さ の文字列 で表され, 回目の試合の勝者は の 文字目が ならば高橋君, ならば青木君である.
この 回の試合から総合勝者を次のルールによって決定する.
- 勝利数の多い方が総合勝者である.
- 勝利数が同じであるならば, 先にその勝利数に達したほうが総合優勝である.
どっちが総合優勝か?
制約
- は からなる長さ の文字列.
解法
に含まれる の数を としたとき, または であるならば直ちに総合優勝を決定できる.
一方で, の場合は for 文によって, どちらが先に 勝するかを求めることによって総合優勝を求めることができる.
なお, の場合は第 試合で負けたほうが必ず総合優勝になるので, それを利用しても良い.
AtCoder Beginner Contest 300 E問題 Dice Product 3
問題
提出解答
問題の概要
面体の各目が同様に確からしく出るサイコロがある. 最初, である. 以下の行動を となる限り行う.
- サイコロを降って出た目を とする. そして, を 倍する.
行動終了後, となる確率を求めよ.
制約
解法
正の有理数 に対して, で とできる確率とする.
まず, であり, が整数ではないならば, である.
以上の整数 に対して, 各目で場合分けすることにより,
となる.
ここで, 左辺と右辺に が現れているが, 整理することによって,
となる.
に現れる素因数は である. そして,
となるから, の計算に必要な引数のうち, 整数になるのは高々 個であり, 深さは高々 である.
よって, 整数でない における はすぐに を返すようにメモ化再起を計算することによって, を 時間で計算できる.
AtCoder Beginner Contest 300 D問題 AABCC
AtCoder Beginner Contest 300 C問題 Cross
問題
提出解答
問題の概要
行 列のマス目がある. 上から 行目, 下から 列目のマス目を と書く.
各マスは のどれかが書かれており, には が書かれている. また, の少なくとも一方を満たさない場合は とする.
ここで, 正の整数 が以下の条件を全て満たすとき, を中心とするサイズ のバツ印という.
- に対して, は全て である.
- のうち, 少なくとも つは である.
また, 相異なる つのバツ印はマス同士は頂点を共有せず, 全ての はあるバツ印を構成する.
とする. に対して, サイズ のバツ印は何個あるか?
制約
解法
マス があるバツ印の中心であることの必要十分条件は が全て であることである.
よって, 各マスについて, 中心かどうかを判定し, 中心だった場合はそのサイズを計算することによって, 全てのバツ印を漏れなく重複無く探索できる.
この方針では計算量 時間になる.