DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

自然に優しい村

問題に戻る

解説

空き地 ccc について、w(c)w(c)w(c) をその空き地の周囲 888 マスにある家の数とする。

空き地 ccc に木を一本植えると、その木は周囲にある各家の木の本数に一回ずつ数えられる。したがって、全体の総和はちょうど w(c)w(c)w(c) だけ増える。異なる空き地の寄与は互いに影響しない。

よって問題は、000 以上 888 以下の値 w(c)w(c)w(c) のうちいくつかを選び、その和を KKK 以上にしつつ、選ぶ個数を最小化する問題に置き換えられる。同じ本数の木を植えるなら、得られる総和を最大にするには大きい w(c)w(c)w(c) から選ぶのが最適である。したがって、8, の順に必要なだけ選べばよい。

すべての空き地の w(c)w(c)w(c) の総和が KKK より小さい場合、条件を満たすことはできないので -1 を出力する。K=0K=0K=0 の場合は一本も植える必要がないため、答えは 000 である。

各空き地の w(c)w(c)w(c) は周囲の最大 888 マスを調べれば求められる。w(c)w(c)w(c) は 0,1,…,80,1,\ldots,80,1,…,8 のいずれかなので、各値の個数を数えるだけでよく、ソートは不要である。計算量は各テストケースについて 、全体では である。グリッドの保存に のメモリを使用する。

Solution written by GPT5.6

7,…,18,7,\ldots,1
8,7,…,1
O(RC)O(RC)
O(RC)
O(∑RC)O(\sum RC)O(∑RC)
O(RC)O(RC)O(RC)