Yougth現在有n個物品的重量和價值分別是Wi和Vi,你能幫他從中選出k個物品使得單位重量的價值最大嗎?
3 2 2 2 5 3 2 1
0.75
思路:二分加貪心#include#include #include using namespace std; int w[10000],v[10000],n,k; double y[10000]; bool C(double x) { for(int i=0;i =0; } void solve() { double lb =0,ub=10000; for(int i=0;i<100;i++) { double mid =(lb+ub)/2; if(C(mid)) lb = mid; else ub=mid; } printf("%.2f\n",ub); } int main() { while(cin>>n>>k) { for(int i=0;i >w[i]>>v[i]; solve(); //system("pause"); } return 0; }