2020-09-01から1ヶ月間の記事一覧

PythonでJOI難易度5を埋める #22

E - チーズ (Cheese) 考えたこと ねずみの最初の体力は 1 であり,チーズを 1 個食べるごとに体力が 1 増える.ただし,ねずみは自分の体力よりも硬いチーズを 食べることはできない とあるので,チーズは1からNまでを順番に食べていくことになります.二点…

PythonでJOI難易度5を埋める #21

C - 最高のピザ (Best Pizza) 考えたこと 問題の頭を読んだときは「お,DPかな」と思ったけど,トッピングのカロリーでsortかけて大きい順に取るだけでした. n = int(input()) a, b = map(int, input().split()) c = int(input()) d = [int(input()) for _ …

PythonでJOI難易度5を埋める #20

poster - JOIポスター (JOI Poster) 考えたこと 再帰関数で殴る!!!!.初めて再帰関数を書いたので雑な部分は許して. n, k = map(int, input().split()) def solve(n, k): if k <= 2 ** (n - 1): return 'J' * (2 ** (n - 1)) + 'O' * (2 ** (n - 1)) elif n…

PythonでJOI難易度5を埋める #19

A - 旅人 考えたこと 累積和するだけなのに,難易度5なのはで割るのを忘れるからだと思う←忘れた人 n, m = map(int, input().split()) city = [int(input()) for _ in range(n - 1)] dis = [int(input()) for _ in range(m)] mod = 10**5 csum = [0] for i i…

PythonでJOI難易度5を埋める #18

1 - 電飾 (illumination) 考えたこと 交互列ごとに区切ると,番目の交互列に機械を使うと左右の交互列(だと片方)と必ず接続される.このことから,入力を交互列ごとに区切って,交互列のどれに機械を使えばよいかを判断すればよい.2つ以下の交互列にしか区…

PythonでJOI難易度5を埋める #17

D - 暑い日々 (Hot days) 非常に眠いので,支離滅裂なことを書いています.いつもだろ 考えたこと 日目の選択に日目以外の情報は必要ない.なので,DPする.DP[i][j]は日目に個目の服を選んだときの値を保持している. d, n = map(int, input().split()) t =…

PythonでJOI難易度5を埋める #16

D - シルクロード (Silk Road) 考えたこと 愚直に求めようとすると,それぞれの町で2通りあるので計算量が以上になって間に合わなさそうなので,DPを使って解く. 普通にDPするだけ 町の数日程のDPテーブルを作る n, m = map(int, input().split()) d = [int…

PythonでJOI難易度5を埋める #15

A - 鉄道旅行 (Railroad Trip) 考えたこと 鉄道はとの区間しか移動できないから,それぞれの鉄道に何回乗るかをカウントする. カウントしたらをそれぞれの鉄道で計算するだけだが,鉄道に何回乗るかをカウントするのがネックになる. 愚直に区間内の配列の…

PythonでJOI難易度5を埋める #14

A - ストーブ (Stove) 考えたこと それぞれのを計算して,大きい順からマッチを使った方がストーブが燃料を節約できます.最初の訪問者が来たときは,必ずマッチを消費することに注意します. n, k = map(int, input().split()) visitors = [int(input()) fo…

PythonでJOI難易度5を埋める #13

A - 勇者ビ太郎 (Bitaro the Brave) 考えたこと 前から愚直に累積和をすると,PythonはTLE,PyPyだとMLEになります. そこで後ろから,調べることにします.Oは後ろから調べると行ごとに値を保持すればいいので,大きいlistを使う必要がありません.Iは列の…