题解 NYOJ248 BUYING FEED

题目:?pid=248

分析:英文题目,看懂了,,画几下,就发现其实就是一个贪心背包的变形,水题一个~话不多少,代码走起~

/*部分背包的变体,水题 只需要算出每个商店的单位总费用 = 原单位费用+距离的费用 */#include <iostream>using namespace std;#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>struct Node{int w,v;};Node stores[101];int cmp(const void *a,const void *b){Node *x = (Node*)a;Node *y = (Node*)b;return x->v – y->v;}int main(){int T;cin >> T;while (T–){int k,e,n;cin >> k >> e >> n;for (int i = 0; i < n; ++i){int x,f,c;cin >> x >> f >> c;stores[i].w = f;stores[i].v = c + e – x;}qsort(stores,n,sizeof(Node),cmp);int ans = 0;for (int i = 0; i < n && k > 0; ++i){if (stores[i].w <= k){ans += stores[i].w*stores[i].v;k -= stores[i].w;}else{ans += k*stores[i].v;break;}}cout << ans << endl;}return 0;}

一定要记得挺身而出,即便帮不了忙,安慰也是最大的支持.

题解 NYOJ248 BUYING FEED

相关文章:

你感兴趣的文章:

标签云: