USACO SEC.1.3 No.1 Mixing Milk
生活随笔
收集整理的這篇文章主要介紹了
USACO SEC.1.3 No.1 Mixing Milk
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題意:需要收購總數為N的牛奶,現(xiàn)在有M個牛奶供應商(總量足夠),給出總數和單價,求最小的花銷。
核心:基本的貪心解法,按單價排序逐個選取。
目的在于熟悉基本的貪心法的基本方法和思路
/* ID: lsswxr1 PROG: milk LANG: C++ */ #include <iostream> #include <vector> #include <map> #include <list> #include <set> #include <deque> #include <stack> #include <queue> #include <algorithm> #include <cmath> #include <cctype> #include <cstdio> #include <iomanip> #include <cmath> #include <cstdio> #include <string> #include <cstring> #include <fstream> using namespace std;///宏定義 const int INF = 1000000000; const int MAXN = 5015; const int maxn = MAXN; ///全局變量 和 函數#define USACO #ifdef USACO #define cin fin #define cout fout #endif // int N, M; struct farm {int price, total;bool operator < (const farm& t) const{return price < t.price;} }; farm f[maxn]; int main() { #ifdef USACO ofstream fout ("milk.out");ifstream fin ("milk.in"); #endif ///變量定義while (cin >> N >> M){for (int i = 0; i < M; i++){cin >> f[i].price >> f[i].total;}sort(f, f + M);int remainsNeed = N, cost = 0;for (int i = 0; i < M; i++){if (f[i].total > remainsNeed){cost += f[i].price * remainsNeed;break;}cost += f[i].price * f[i].total;remainsNeed -= f[i].total;}cout << cost << endl;}///結束return 0; }?
轉載于:https://www.cnblogs.com/rayforsure/p/3443341.html
總結
以上是生活随笔為你收集整理的USACO SEC.1.3 No.1 Mixing Milk的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全网搜php,FM全网自动采集聚合影视搜
- 下一篇: java keyadapter_在jav