hnust队内选拔赛第二场 杀伤力(二维完全背包)

原创 2013年12月03日 18:40:52

题目来自:http://blog.csdn.net/sdc1992/article/details/8034440

杀伤力
Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Problem Description
有一个游戏,提供你两种资源MIN和GAS. 然后可以购买ZE,ST,SE三种设备武装你的军队.每单位ZE需要花费100 MIN ,但不需要GAS.每单位ST需要花费125 MIN和 50 GAS.每单位SE需要花费50 MIN和 100 GAS.
给定资源量和每种设备的杀伤值,求如何装备军队使得杀伤力最大
Input
输入含多个测试用例,每行一个测试用例。每个测试用例有5个整数. M (0<=M<=50000),你拥有的MIN数量.G (0<=G<=50000), 你拥有的GAS数量. Z (0 <= Z<=1000), 每个ZE的杀伤值. S (0<= S<=1000), 每个ST的杀伤值. E
(0<=E<=1000) ,每个SE的杀伤值. 输入M = G =Z =S = E = 0表示结束,不应该处理.
Output
对每个测试用例,单独一行输出最大的杀伤力
Sample Input
500 400 10 20 15
0 0 0 0 0
Sample Output
95
Author

hnust_loser


开始想建个50005*50005的数组,发现即使开全局变量也不行,后来尝试用new,发现运行报错,看了下别人的思路,把m,g同时处以25,问题解决(结果可能会有1-24的误差,但这对最后结果无影响,因为没有意见物品可以用24买的)。


思路:先将数据规模缩小,然后用二维的完全背包就可以直接解决了。


我的代码

#include <iostream>
#define maxv 2013
using namespace std;
int ans[maxv][maxv],m,g,z,s,e,lir[3];
int c[3][2]={{4,0},{5,2},{2,4}};
int main()
{
    while(cin>>m>>g>>lir[0]>>lir[1]>>lir[2]){
        if(m==0 && g==0 && lir[0]==0 && lir[1]==0 && lir[2]==0)
            break;
        m /= 25; g /= 25;
        for(int i=0; i<3; i++){
            for(int j=c[i][0]; j<=m; j++){
                for(int k=c[i][1]; k<=g; k++){
                    ans[j][k]=max(ans[j][k], ans[j-c[i][0]][k-c[i][1]]+lir[i]);
                }
            }
        }
        cout<<ans[m][g]<<endl;
    }
}

二维完全背包

题目:hdu2159 题意:xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还...
  • Sleppypot
  • Sleppypot
  • 2016年09月18日 11:01
  • 618

选拔赛-杀伤力

杀伤力 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submis...
  • v123411739
  • v123411739
  • 2012年09月26日 01:13
  • 779

hdu3127WHUgirls【二维完全背包】

Problem Description There are many pretty girls in Wuhan University, and as we know, every girl lov...
  • zhou_yujia
  • zhou_yujia
  • 2015年10月29日 15:53
  • 323

第二场选拔赛

A 目测一道难题,十有八九我也不会。B 思路:枚举圆。 PS:写几何的时候注意精度。C 思路:首先枚举种类,然后用隔板法求组合数。#include using namespace std; ...
  • chenzhenyu123456
  • chenzhenyu123456
  • 2017年04月03日 23:20
  • 241

HDU 2159 二维完全背包(二维费用)

FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...
  • became_a_wolf
  • became_a_wolf
  • 2015年12月14日 15:53
  • 170

hnust选拔赛2

/*   hnust各题的解题思路: 1002冠军: 题目要求确保某一位你的朋友成为冠军,那么只要用各个人的比赛情况建立一个有向图 ,如果a胜b,就建立一点a->b的边,最后用所有朋友点...
  • laziercs
  • laziercs
  • 2012年10月02日 19:16
  • 566

省赛选拔赛——组队赛第二场

Rank 5。 2013年通化全国邀请赛的题。比赛时出了2道题,打完之后才知道杭电G++编译器有问题,D题同样的代码C++能AC,G++一直超时。一开始A题交了好久次才过罚时好多,一着急就乱了,改一个...
  • wcr1996
  • wcr1996
  • 2015年04月14日 20:04
  • 1214

省赛选拔赛——个人赛第二场

Rank 5,AC5道,全部1Y。 开场读错了A题,打了就交,直接WA。后来一路跟题,出了几个水题。刷完水题之后,卡在一道BFS上,浪费了不少时间,导致两道简单DP出得特别晚。后来卡D题的BFS,没有...
  • wcr1996
  • wcr1996
  • 2015年04月06日 23:21
  • 1237

【9月13日】宁大队内选拔赛

比赛地址:http://acm.hdu.edu.cn/diy/contest_show.php?cid=12689    这次比赛总共A了3道题目(1002,1005,1006)。比赛过程中前半程还...
  • litoupu
  • litoupu
  • 2011年09月13日 22:32
  • 1152

2018xman冬令营选拔赛第2题wp-Android结合js的逆向实践

第2题wp 绕着绕着就出来了 1.      使用jd-gui反编译apk源代码。 2.      查看主进程中的OnCreate()函数: 点击按钮a的时候,会创建b对象,b对象会执行ur...
  • qq_35859258
  • qq_35859258
  • 2018年01月07日 18:28
  • 64
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hnust队内选拔赛第二场 杀伤力(二维完全背包)
举报原因:
原因补充:

(最多只允许输入30个字)