算法提高 快乐司机
2017-03-26 16:29
323 查看
/** 2017.3.25 Donald */ /** 思路:不用dp, 直接按其价值比,从高到底堆积。 */ #include<bits/stdc++.h> using namespace std; #define MAXN 10001 int N; //物品的数目 int W; //荷载重量 //pair.second .first : weight, .second : value; pair<double , pair<int, int> > Pair[MAXN]; void solve() { double value = 0; int remainWeight = W; sort(Pair, Pair + N); for (int i = N - 1; i >= 0; i --) { if (remainWeight <= 0) break; if (Pair[i].second.first >= remainWeight) { value += remainWeight * Pair[i].first; remainWeight = 0; // printf("value: %d , weight : %d\n", Pair[i].second.first, Pair[i].second.second); } else { value += Pair[i].second.second; remainWeight -= Pair[i].second.first; // printf("value: %d , weight : %d\n", Pair[i].second.first, Pair[i].second.second); } } printf("%.1lf", value); } int main(void) { int gi, pi; double rate; scanf("%d%d", &N, &W); for (int i = 0 ; i < N; ++i) { scanf("%d%d", &gi, &pi); rate = pi * 1.0 / gi; Pair[i].first = rate; Pair[i].second.first = gi; Pair[i].second.second = pi; } solve(); return 0; }
相关文章推荐
- 蓝桥杯 算法提高 快乐司机 (贪心)
- 蓝桥杯 ADV-167算法提高 快乐司机(贪心算法)
- 算法提高 快乐司机 (排序,贪心)
- 算法提高 快乐司机
- 蓝桥杯--算法提高 快乐司机
- 蓝桥杯 - 算法提高 快乐司机 ( 排序+贪心 )
- 【ShawnZhang】带你看蓝桥杯——算法提高 快乐司机
- 算法提高 快乐司机
- 蓝桥杯 算法提高 快乐司机
- 蓝桥杯 ADV-167算法提高 快乐司机(贪心算法)
- 蓝桥杯算法提高 快乐司机
- 算法提高 快乐司机
- 蓝桥杯 贪心模板 _算法提高 快乐司机
- 蓝桥杯 算法提高 快乐司机
- 蓝桥网 算法提高 快乐司机
- 蓝桥杯 算法提高 快乐司机
- 算法笔记_102:蓝桥杯练习 算法提高 快乐司机(Java)
- 蓝桥杯_算法提高_快乐的司机(快速排序、贪心算法)
- 算法提高 快乐司机(贪心法,排序使用了接口,不超时)
- 算法提高 不大的数