首页 > 代码库 > hdu 4882 ZCC Loves Codefires(贪心)
hdu 4882 ZCC Loves Codefires(贪心)
题目链接:hdu 4882 ZCC Loves Codefires
题目大意:就是CF的比赛,根据时间的推迟会相应的扣掉题目的分数,问说最少扣几分。
解题思路:相邻交换法,判断两个题目之间的比率确定前后位置。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 1e5+5;
typedef __int64 ll;
struct state {
ll e, k;
}s[maxn];
int n;
bool cmp (const state& a, const state &b) {
return a.e * b.k < a.k * b.e;
}
int main () {
while (scanf("%d", &n) == 1 && n) {
for (int i = 0; i < n; i++)
scanf("%I64d", &s[i].e);
for (int i = 0; i < n; i++)
scanf("%I64d", &s[i].k);
sort(s, s + n, cmp);
ll ans = 0, t = 0;
for (int i = 0; i < n; i++) {
t += s[i].e;
ans += s[i].k * t;
}
printf("%I64d\n", ans);
}
return 0;
}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。