
コンテスト時間: 2025-07-12(土) 21:00 ~ 2025-07-12(土) 22:40 (100分)
A - Streamer Takahashi
Difficulty: 11 / NoviSteps: ???
解答時間: 1:44
- 高橋君は
時から
時に配信をすることにした。高橋君には
人のリスナーがおり、
人目のリスナーは
時から
時まで配信を見ることができる。高橋君の配信を最初から最後まで見ることができるリスナーは何人いるか求めよ。
となる
の個数を数えればよい。
B - String Too Long
Difficulty: 37 / NoviSteps: ???
解答時間: 3:16
- 文字列
を
個の文字と整数の組
にランレングス圧縮したものが与えられるので、
を復元せよ。ただし、
の長さが
を超える場合には
Too Long
と出力せよ。
- ランレングス圧縮のライブラリを自分は持っていたので、これを貼るだけ。
- ただし、
となったときは即座に
Too Long
として処理を打ち切る。
C - Palindromic in Both Bases
Difficulty: 709 / NoviSteps: ???
解答時間: 21:44
- 正の整数
が与えられるので、
以上
以下の整数のうち、十進法での表記も
進法での表記も回文であるようなものの総和を求めよ。
- 方針としては、以下のようになるはず。
- 十進法で回文となる数
を桁数ごとに生成
の範囲チェック
を
進法での表記
に変換
が回文なら、総和に
を加算
- 十進法で回文となる数
- 回文生成時は、作りたい長さを
としたときに、「長さ
の前半部分だけ作って、後半部分は前半部分を反転してくっつける」ということをすれば簡単。
- 基数変換は以前紹介した自作ライブラリを貼ればラクができる。
- 解法は割とすぐに思いつくのだが、実装がやや大変。
- コンテスト時間中に、私の記事が結構アクセスされてたみたいで嬉しかったです。
D - Transmission Mission
Difficulty: 841 / NoviSteps: ???
解答時間: 20:54
- 数直線上に
棟の家があり、家
は座標
にある。ただし、座標に複数の家が位置していることもある。ここで、
個の基地局を数直線上の任意の実数座標に配置し、それぞれの基地局に対して非負整数の値の電波強度を設定する。ある基地局の電波強度を
にしたとき、その基地局からの電波が家に届く条件は、その基地局とその家の距離が
以下であることである。どの家にも少なくとも1つの基地局から電波が届くように基地局の位置と電波強度を設定するとき、電波強度の総和がとりうる最小値を求めよ。
- 以下、
は昇順にソートされているとする。
- 電波強度が
の基地局を中心として範囲
の区間がカバーされると考えると、
個の基地局がカバーする区間の長さの合計を最小化すればよいが、これは
棟の家を
個の連続したグループに分割し、各グループの「最大座標と最小座標の差」の合計を最小化することと同値である。
- 隣接する家の座標の差を
としてこれを降順ソートすれば、
の大きい順に
個選び、各
について座標
と
の間でグループ分けすればよい。
- よって、求める答えは
である。
結果
Performance: 1211
1086 → 1099 (+13)
D問題までは良いペースで解けたが、それ以降が続かなかった。