NYOJ914Yougth的最大化

2021-07-15 15:03:44 字數 1290 閱讀 4054

描述

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

**在開始看**之前,你需要了解三個東西,1.貪心,2.二分,3.0-1分數規劃,前兩個應該都知道,但是第3個東西,那可要好好的說一說

//sigma()來表示數學上的求和公式  鏈結 

這個第乙個問題解釋的十分詳細,初中水平的數學就就能看懂的,這裡就不多解釋了

#include #include #include using namespace std;

int n,k;

int v[10010],w[10010];

double dp[10010];//這個陣列用來存我們方程子元素的結果的

int compare(double a,double b)//sort函式的比較函式,從大到小

bool judge(double l)//判斷當前是否為最優解,然後通過二分壓縮區間

int main()

double low=0,high=max,mid;//二分搜尋最優解,下界0,上界max(最大的單位價值)

printf("%.2lf\n",mid);//保留兩位輸出就好

} return 0;

}

下面是純**

#include #include #include using namespace std;

int n,k;

int v[10010],w[10010];

double dp[10010];

int compare(double a,double b)

bool judge(double l)

int main()

double low=0,high=max,mid;

while(high-low>0.00001)

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

} return 0;

}

奈何我冒泡的演算法如果打動你超時的心!!

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...

NYOJ 914 Yougth的最大化

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