HDU - 4310 Hero 贪心

简单贪心,很容易想到首先消灭攻击力强生命值少的怪物

排序即可

#include<bits/stdc++.h>
using namespace std;
const int maxn =20 + 7;
typedef long long ll;

int n;

struct node {
    int d, h;
}a[maxn];
bool cmp(node a, node b) {
    return (a.d*b.h > a.h*b.d);
}

int main() {
    while(~scanf("%d", &n) && n) {
        int sum = 0;
        for(int i = 0; i < n; ++i) {
            scanf("%d%d", &a[i].d, &a[i].h);
            sum += a[i].d;
        }
        sort(a, a+n, cmp);
        int ans = 0;
        for(int i = 0; i < n; ++i) {
            ans += (a[i].h * sum);
            sum -= a[i].d;
        }
        printf("%d\n", ans);
    }

    return 0;
}

猜你喜欢

转载自blog.csdn.net/xiang_6/article/details/79728364