首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

SPOJ 297 Aggressive cows:二分答案求最大最小間隔

     編輯:關於C++

題目大意

n 個棧位置(已排序),選 c 個棧放牛,使任意兩頭牛之間的最小距離盡可能大。輸出這個最大的最小距離。

二分答案 + 貪心驗證

若固定最小距離 d,判斷能否放下 c 頭牛:
貪心策略——第一頭牛必放在第一個棧(若不放,移過去只會增加間距不減少)。之後每頭牛放在距離上一頭牛 ≥ d 的最左棧。若能放 ≥ c 頭,d 可行。
二分搜索 d 的最大可行值。

C++ 實現

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved