CF 779 C Dishonest Sellers 贪心,排序
2017-03-06 17:52
323 查看
题目链接:见这里
题意:给了一些物品,每个物品有俩个价格,一个是打折前的,一个是打折后的(打折发生在一周后),现在一个人必须先买k个物品,然后剩下的物品既可以选择现在买,也可以选择一周后买,其中打折后的价格不一定比现有价格低,无良商人,大家都懂。
解法:我们先考虑一下必须买的k个物品,肯定要优先选择那些打折后变贵的物品,并且在变得同等贵的时候,我们要优先买现在价格大的。买完k个之后,剩下的就是俩个价格取个小,这题就做完了。
题意:给了一些物品,每个物品有俩个价格,一个是打折前的,一个是打折后的(打折发生在一周后),现在一个人必须先买k个物品,然后剩下的物品既可以选择现在买,也可以选择一周后买,其中打折后的价格不一定比现有价格低,无良商人,大家都懂。
解法:我们先考虑一下必须买的k个物品,肯定要优先选择那些打折后变贵的物品,并且在变得同等贵的时候,我们要优先买现在价格大的。买完k个之后,剩下的就是俩个价格取个小,这题就做完了。
//CF 779C #include <bits/stdc++.h> using namespace std; struct node{ int x, y; node(){} }a[200010]; bool cmp(node a, node b){ if((a.x - a.y) == (b.x - b.y)){ return a.y > b.y; } return (a.x - a.y) < (b.x - b.y); } int n, k; int main() { scanf("%d%d", &n, &k); for(int i = 1; i <= n; i++) scanf("%d", &a[i].x); for(int i = 1; i <= n; i++) scanf("%d", &a[i].y); sort(a + 1, a + n + 1, cmp); int ans = 0; for(int i = 1; i <= n; i++){ if(i <= k) ans += a[i].x; else ans += min(a[i].x, a[i].y); } printf("%d\n", ans); return 0; }
相关文章推荐
- CF - 779C. Dishonest Sellers 排序+贪心
- Codeforces Round #402 (Div. 2)C. Dishonest Sellers (贪心)
- 【贪心】Codeforces Round #402 (Div. 2) C. Dishonest Sellers
- codeforces 779 C. Dishonest Sellers
- Codeforces Round #402 (Div. 2)C. Dishonest Sellers【贪心】这个贪心好水啊....
- (贪心)Codeforces Round #402 C. Dishonest Sellers
- CF——Dishonest Sellers
- 【CodeForces】779C - Dishonest Sellers(贪心)
- CF#779 C. Dishonest Sellers(贪心)
- 【CodeForces 779C】Dishonest Sellers(贪心)
- Codeforces Round #402 (Div. 2) C. Dishonest Sellers(贪心)
- CF779C:Dishonest Sellers(贪心)
- codeforces779 C. Dishonest Sellers【贪心】
- Codeforces Round #402 (Div. 2) C. Dishonest Sellers
- CF779C(round 402 div.2 C) Dishonest Sellers
- CF - 808C. Tea Party - 排序+贪心
- AC日记——Dishonest Sellers Codeforces 779c
- CF - 766B. Mahmoud and a Triangle - 排序+贪心
- Codeforces #402 (Div. 2) C. Dishonest Sellers
- Dishonest Sellers