程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 4803 Poor Warehouse Keeper(貪心)

HDU 4803 Poor Warehouse Keeper(貪心)

編輯:C++入門知識

 

貪心的策略是,每次盡量加價格,加到能滿足條件的最大值,然後加一下數量,這樣反復直到到達答案。

然後加到滿足條件最大值一步不能模擬,可以推一下公式就能直接算出來了

代碼:

 

#include 
#include 

const double eps = 1e-9;
double x, y;

int main() {
    while (~scanf(%lf%lf, &x, &y)) {
	if (x > y) {
	    printf(-1
);
	    continue;
	}
	double s = (y + 1 - eps) / x;
	double tmp = 1;
	int count = (int)x - 1;
	for (int i = 1; i <= (int)x; i++) {
	    int sb = (int)(s * i - tmp);
	    tmp += sb;
	    tmp = tmp / i * (i + 1);
	    count += sb;
	}
	printf(%d
, count);
    }
    return 0;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved