1 条题解
-
0蔡皓朗 (caihaolang) LV 6 @ 2022-9-2 22:36:47
贪心。
将一斤猪肉来到某个村庄后的利润算出来,并以此将村庄从小到大排序。要使利润最大化,必然在利润大的村庄卖重的,所以猪按重量从大到小排序。
然后就没有然后了,挺显然的一道题。
#include<bits/stdc++.h> #define ll long long using namespace std; const int N = 10000 + 10; int n, T, ans[N]; struct pig{ ll w, id; bool operator < (const pig &p) const {return w > p.w;} } p[N]; struct town{ ll dis, val, id; bool operator < (const town &p) const {return val > p.val;} } t[N]; int main(){ scanf("%d%lld", &n, &T); for(int i=1;i<=n;i++) scanf("%lld", &p[i].w), p[i].id = i; for(int i=1;i<=n;i++) scanf("%lld", &t[i].dis), t[i].id = i; for(int i=1;i<=n;i++){ ll v; scanf("%lld", &v); t[i].val = v - t[i].dis * T;//一斤猪肉来到这个村庄后可以买多少钱 } sort(p + 1, p + 1 + n); sort(t + 1, t + 1 + n); for(int i=1;i<=n;i++) ans[t[i].id] = p[i].id; for(int i=1;i<=n;i++) printf("%lld ", ans[i]); return 0; }
- 1
信息
- ID
- 2809
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 30
- 已通过
- 7
- 上传者