ながめも

競技プログラミングについて

Codeforces Round #627 (Div. 3)

Codeforces Round #627 (Div. 3)に参加しました。

A - Yet Another Tetris Problem

問題概要

デフォの盤面に2 * 1のテトリスを積んでいき全部消せるかどうか

解説

偶奇を見るだけです。

提出

Yet Another Palindrome Problem

問題概要

部分列に回分があるか判定

解説

1 1 1のケースを見逃していました(なんで・・・)

提出

C - Frog Jumps

問題概要

カエルがRLの指示に従って飛びます。

解説

0 ~ N+1にいきたいんですが、サンプルからエスパーするとLの長さの最大値+1だといいです。

提出

D - Pair of Topics

問題概要

i < jでa_i + a_j > b_i + b_jとなるi,jの組みを探す問題。

解説

iとjが別れてると評価しにくいので a_i - b_i > - (a_j - b_j) という形にして処理します。 あるiについてa_i - b_iを見て、マイナスの配列でそれ未満の数がいくつあるかを数えればよい。元の数が+の場合は絶対に自分が入るので、-1しておく。最後に半分にする。これ握手とかのやつで見たな。

提出

E - Sleeping Schedule

問題概要

N回寝る意思決定をする人がいます。i回目の意思決定では起きてからa_i or a_i - 1時間後に寝ることを選択できます。l <= x <=r 時に寝始められた日はgood dayです。1日の時間をH時間とし、H時間寝るとして、適切に意思決定をしたときのgood dayの回数の最大値を求めてください。

解説

DPやるだけ。 dp[i][j]: i回意思決定後のj時に起きたときのgood daysの最大値。

提出

参考