南陽理工914Yougth的最大化

2021-07-03 19:45:35 字數 1760 閱讀 6705

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:4 描述

yougth現在有n個物品的重量和價值分別是wi和vi,你能幫他從中選出k個物品使得單位重量的價值最大嗎?

輸入

有多組測試資料

每組測試資料第一行有兩個數n和k,接下來一行有n個數wi和vi。

(1<=k=n<=10000) (1<=wi,vi<=1000000)

輸出輸出使得單位價值的最大值。(保留兩位小數)

樣例輸入

3 2

2 25 3

2 1

樣例輸出

0.75

分析利用二分法,貪心思想去解決問題

貪心就是盡量多的去裝載東西,本題是使單價盡量高。

首先確定最優解l也就是f在0和最高單價t之間。

然後去判斷各個單價,找出k個符合條件的相加,如果結果小於0,說明單價過高,大於0說明過低

然後去比較l和r,直至無限接近,輸出最優解。

01.#include

02.#include

03.#include

04.#include

05.usingnamespacestd;

06.structnode

07.g[10005];

10.doublep[10005];

11.intn,k;

12.intcot(doublef)

13.

24.intmain()

25.

38.i=0;

39.while(i<100)                   // 等價於r-1>1e-4

40.

48.printf("%.2lf\n",l);

49.memset(g,0,sizeof(g));

50.}

51.return0;

52.}

nyoj 題目914 Yougth的最大化

時間限制 1000 ms 記憶體限制 65535 kb 難度 4描述 yougth現在有n個物品的重量和價值分別是wi和vi,你能幫他從中選出k個物品使得單位重量的價值最大嗎?輸入 有多組測試資料 每組測試資料第一行有兩個數n和k,接下來一行有n個數wi和vi。1 k n 10000 1 wi,vi...

NYOJ 914 Yougth的最大化

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 yougth現在有n個物品的重量和價值分別是wi和vi,你能幫他從中選出k個物品使得單位重量的價值最大嗎?輸入 有多組測試資料 每組測試資料第一行有兩個數n和k,接下來一行有n個數wi和vi。1 k n 10000 1 wi,v...

NYOJ 914 Yougth的最大化

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 yougth現在有n個物品的重量和價值分別是wi和vi,你能幫他從中選出k個物品使得單位重量的價值最大嗎?輸入 有多組測試資料 每組測試資料第一行有兩個數n和k,接下來一行有n個數wi和vi。1 k n 10000 1 wi,v...