【题目描述】 在一块面积为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]; }转载于:https://www.cnblogs.com/JRX2015U43/p/6533502.html
相关资源:JAVA上百实例源码以及开源项目