1. 程式人生 > 其它 >FatMouse‘ Trade hdu-1009 C++

FatMouse‘ Trade hdu-1009 C++

技術標籤:HDU演算法

題目連結

在這裡插入圖片描述

#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;

struct MyStruct1
{
    int j, f; //JavaBean 、 貓糧 
    double value; //綜合價值
}Trade[1005];
//價值降序排序
bool cmp(MyStruct1 m1,MyStruct1 m2)
{
    return m1.value > m2.value;
}

int main()
{
    int
m, n; double mao,sum; while (cin>>m>>n && m!=-1&&n!=-1) { for (int i = 0; i < n; i++) { cin >> Trade[i].j >> Trade[i].f; Trade[i].value = (1.0*Trade[i].j / Trade[i].f); } sort(Trade,Trade+n,cmp)
; mao = 0.0;//已經換的貓糧數目 sum = 0.0;//換到的Java豆 for (int i = 0; i < n; i++) { if (mao<=m) { if (mao + Trade[i].f <= m) { mao += Trade[i].f; sum += Trade[i].j; }
else { sum += (m - mao)*Trade[i].value; mao = m; } } else { break; } } cout << setprecision(3) << fixed<<sum << endl; } return 0; }