描述
yougth現在有n個物品的重量和價值分別是wi和vi,你能幫他從中選出k個物品使得單位重量的價值最大嗎?
輸入
有多組測試資料
每組測試資料第一行有兩個數n和k,接下來一行有n個數wi和vi。
(1<=k=n<=10000) (1<=wi,vi<=1000000)
輸出輸出使得單位價值的最大值。(保留兩位小數)
樣例輸入
3 22 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...