2012百度之星初賽:C題

C:度度熊的禮物

時間限制:
1000ms
內存限制:
65536kB
描述

度度熊擁有一個自己的Baidu空間,度度熊時不時會給空間朋友贈送禮物,以增加度度熊與朋友之間的友誼值。度度熊在偶然的機會下得到了兩種超級禮物,於是決定給每位朋友贈送一件超級禮物。不同類型的朋友在收到不同的禮物所能達到的開心值是不一樣的。開心值衡量標準是這樣的:每種超級禮物都擁有兩個屬性(A, B),每個朋友也有兩種屬性(X, Y),如果該朋友收到這個超級禮物,則這個朋友得到的開心值爲A*X + B*Y。

由於擁有超級禮物的個數限制,度度熊很好奇如何分配這些超級禮物,才能使好友的開心值總和最大呢?

輸入
第一行n表示度度熊的好友個數。
接下來n行每行兩個整數表示度度熊好朋友的兩種屬性值Xi, Yi。
接下來2行,每行三個整數ki, Ai, Bi,表示度度熊擁有第i種超級禮物的個數以及兩個屬性值。
1 <= n <= 1000, 0 <= Xi, Yi, Ai, Bi <= 1000, 0 <= ki <= n, 保證k1+k2 >= n
輸出
輸出一行一個值表示好友開心值總和的最大值
樣例輸入
4
3 6
7 4
1 5
2 4
3 3 4
3 4 3
樣例輸出
118

悲催的貪心法,每次給心情最多的一個人最好的禮物。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
struct Node
{
    int a,b,n;
}a[2000];
struct Node2
{
    int n,a,b;
}b[2];

int main()
{
    int n,i,j;
    long long sum = 0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d%d",&a[i].a,&a[i].b);
        a[i].n = 0;
    }
    scanf("%d%d%d%d%d%d",&b[0].n,&b[0].a,&b[0].b,&b[1].n,&b[1].a,&b[1].b);
    for(i=0;i<n;i++)
    {
        int max = -1;
        int liwu = -1;
        int sj = -1;
        for(j=0;j<n;j++)
        {
            if(a[j].n==1)
                continue;
            int temp1 = b[0].a*a[j].a+b[0].b*a[j].b;
            int temp2 = b[1].a*a[j].a+b[1].b*a[j].b;
            if(b[0].n>0&&b[1].n>0)
            {
                if(temp1>=temp2&&temp1>max)
                    max = temp1,liwu = 0,sj=j;
                else if(temp2>temp1&&temp2>max)
                    max = temp2,liwu = 1,sj=j;
            } else if(b[0].n>0)
            {
                if(temp1>max)
                    max = temp1,liwu = 0,sj=j;
            } else if(b[1].n>0)
            {
                if(temp2>max)
                    max = temp2,liwu = 1,sj=j;
            }
        }
        if(max!=-1&&liwu!=-1)
        {
            sum += max;
            b[liwu].n--;
            a[sj].n=1;
        }
    }
    printf("%lld\n",sum);
    return 0;
}


發佈了17 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章