24h購物| | PChome| 登入
2012-11-27 17:45:57| 人氣406| 回應0 | 上一篇 | 下一篇

[PTC][201211] PB Job Allocation

推薦 0 收藏 0 轉貼0 訂閱站台

Greedy。

對價值由大排到小,依序排入理想職位,如果不足就捨棄。



#include <stdio.h>
#include <algorithm>
using namespace std;
struct ele {
    int idx, h;
};
ele A[100000];
bool cmp(ele a, ele b) {
    return a.h > b.h;
}
int main() {
    int N, Jf, Jc, Je;
    int F, C, E, H;
    int i;
    int t;
    scanf("%d", &t);
    while(t--) {
        scanf("%d", &N);
        scanf("%d %d %d", &Jf, &Jc, &Je);
        for(i = 0; i < N; i++) {
            scanf("%d %d %d %d", &F, &C, &E, &H);
            if(F > C && F > E) {
                A[i].idx = 0, A[i].h = H;
            } else if(C > F && C > E)
                A[i].idx = 1, A[i].h = H;
            else A[i].idx = 2, A[i].h = H;
        }
        sort(A, A+N, cmp);
        long long ans = 0;
        for(i = 0; i < N; i++) {
            if(A[i].idx == 0) {
                if(Jf > 0)
                    Jf--, ans += A[i].h;
            }
            if(A[i].idx == 1) {
                if(Jc > 0)
                    Jc--, ans += A[i].h;
            }
            if(A[i].idx == 2) {
                if(Je > 0)
                    Je--, ans += A[i].h;
            }
        }
        printf("%lld\n", ans);
    }
    return 0;
}

台長: Morris
人氣(406) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: 資訊競賽 |
此分類下一篇:[PTC][201211] PD Happy Teachers’ Day
此分類上一篇:[PTC][201211] PA Circular Matrix Product

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文