魅力指数

【题目描述】
在一块面积为n(0<=n<=100)的土地上建造若干个建筑,这些建筑都有各自的占地面积q(0<=q<=100),价格p(0<=w<=100)和魅力值v(0<=v<=100)。就暗夜精灵当前掌握的科技来看,他们可以建造m(0<=m<=100)种建筑,为了不使游客感到乏味,每一种建筑规定最多只能建一座。
你的任务就是替玛维想出一种选择建造的方案,使得最多用k(0<=k<=100)的金钱,在面积为n的土地上建出的建筑具有最高的魅力值。
【输入格式】
第一行有三个数m,n,k;以下有m行,分别包含了m种建筑的占地面积q,价格p和魅力值v。
【输出格式】
最高魅力值。
【样例输入】
5 12 11
4 3 3
3 2 6
2 4 2
6 3 7
5 5 6
【样例输出】
15
【分析】
背包问题。

#include<iostream>
using namespace std;
int a[100],b[100],c[100],f[100][100],n,m,k;
int main()
{
    cin>>n>>m>>k;
    for (int i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i];
    for (int i=1;i<=n;i++)
        for (int v=m;v>=a[i];v--)
            for (int u=k;u>=b[i];u--)
                f[v][u]=max(f[v][u],f[v-a[i]][u-b[i]]+c[i]);
    cout<<f[m][k];
}
posted @ 2016-10-25 22:56  JRX2015U43  阅读(266)  评论(0编辑  收藏  举报