1 条题解
-
0
//USACO131. Mixing Milk /* 解题思路:贪心 使用结构体来存储牛奶的信息,将牛奶按照单价从低到高来排序,依次取牛奶 */ #include <bits/stdc++.h> using namespace std; const int MAXN = 5005; // 最大奶农数量 struct farmer { int p, num; // 分别记录单价和产量 }a[MAXN]; bool cmp(farmer a,farmer b){ if(a.p < b.p) return 1; else return 0; } int main() { int n,m; // N 表示总需求量,M 表示奶农数量 cin >> n >> m; for (int i = 0; i < m; i++) // 读入单价和产量 { cin >> a[i].p >> a[i].num; } sort(a, a + m,cmp); // 对单价进行排序,升序排列 int i = 0; // 指向当前的奶农 int cost = 0; // 总费用,初始值为 0 while (n > 0) // 当需求量大于 0 时 { int buy = min(n, a[i].num); // 实际采购数量为需求量和奶农产量的较小值 cost += buy * a[i].p; // 计算费用,并加到总费用中 n -= buy; // 更新需求量 i++; // 移动到下一个奶农 } cout << cost << endl; // 输出总费用 return 0; }
- 1
信息
- ID
- 1130
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 5
- 已通过
- 2
- 上传者