码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 3127 WHUgirls

时间:2014-05-18 09:30:17      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:blog   class   code   c   tar   http   

题目:

    链接:点击打开链接

题意:

    武汉大学有很多漂亮的妹纸,,,,,,,他们有一块待剪的布,他们想把它剪成很多小块做围巾,每个人喜欢不同的风格,他们把每一块的价值写在了纸上,现在有一个机器,可以把一块布剪成两块矩形的布,要求你用这台机器把原始的大布剪成纸上出现的小布,他们希望的到小块布的价值最大,当然不要求用完所有的布。。

思路:

    首先它是一个背包问题:1>大布尺寸是总容量,每个小布都有相应的费用,2>要求剪的小布的个数是不限的,3>每块小布都有价值,要求大布被裁剪后的最大价值,(完全背包中的背包的最大价值)。

max((dp[i-a[k].x][j]+dp[a[k].x][j-a[k].y]),(dp[i][j-a[k].y]+dp[i-a[k].x][a[k].y]))+a[k].c//a[k].c是当前块的价值,
max((dp[i-a[k].x][j]+dp[a[k].x][j-a[k].y]),(dp[i][j-a[k].y]+dp[i-a[k].x][a[k].y]))//剩余块的的最大价值


代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

struct node
{
    int x;
    int y;
    int c;
}a[11];

int dp[1005][1005];

int main()
{
    int N,X,Y,t;
    scanf("%d",&t);
    while(t--)
    {
        memset(dp,0,sizeof(dp));
        scanf("%d%d%d",&N,&X,&Y);
        for(int i=0; i<N; i++)
            scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].c);
        for(int i=1; i<=X; i++)
        {
            for(int j=1; j<=Y; j++)
            {
                for(int k=0; k<N; k++)
                {
                    if(i>=a[k].x && j>=a[k].y)//分两种情况,
                        dp[i][j] = max(dp[i][j],max((dp[i-a[k].x][j]+dp[a[k].x][j-a[k].y]),(dp[i][j-a[k].y]+dp[i-a[k].x][a[k].y]))+a[k].c);
                    if(i>=a[k].y && j>=a[k].x)
                        dp[i][j] = max(dp[i][j],max((dp[i-a[k].y][j]+dp[a[k].y][j-a[k].x]),(dp[i][j-a[k].x]+dp[i-a[k].y][a[k].x]))+a[k].c);
                }
            }
        }
        printf("%d\n",dp[X][Y]);
    }
    return 0;
}

------------------------------------------------------------------------------------

看了大牛的代码和讲解点击打开链接bubuko.com,布布扣

------------------------------------------------------------------------------------

hdu 3127 WHUgirls,布布扣,bubuko.com

hdu 3127 WHUgirls

标签:blog   class   code   c   tar   http   

原文地址:http://blog.csdn.net/u013147615/article/details/26049425

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!