Description

度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来。

邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力。

度度熊一共拥有m种攻击方式,第i种攻击方式,需要消耗k[i]的晶石,造成p[i]点伤害。

当然,如果度度熊使用第i个技能打在第j个怪兽上面的话,会使得第j个怪兽的生命值减少p[i]-b[j],当然如果伤害小于防御,那么攻击就不会奏效。

如果怪兽的生命值降为0或以下,那么怪兽就会被消灭。

当然每个技能都可以使用无限次。

请问度度熊最少携带多少晶石,就可以消灭所有的怪兽。

Input

本题包含若干组测试数据。

第一行两个整数n,m,表示有n个怪兽,m种技能。

接下来n行,每行两个整数,a[i],b[i],分别表示怪兽的生命值和防御力。

再接下来m行,每行两个整数k[i]和p[i],分别表示技能的消耗晶石数目和技能的伤害值。

数据范围:

1<=n<=100000

1<=m<=1000

1<=a[i]<=1000

0<=b[i]<=10

0<=k[i]<=100000

0<=p[i]<=1000

Output

对于每组测试数据,输出最小的晶石消耗数量,如果不能击败所有的怪兽,输出-1

Sample Input

1 2
3 5
7 10
6 8
1 2
3 5
10 7
8 6

Sample Output

6

18

Solution

枚举防御力,固定防御力后问题变成普通的01背包,dp[i][j]dp[i][j]表示防御力为jj时杀掉一个血量为ii的怪兽所需的最少晶石数量,答案即为∑i=1ndp[a[i]][b[i]]\sum\limits_{i=1}^{n}dp[a[i]][b[i]]

Code

#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
#define INF 2e9
#define maxn 100005
#define maxm 1005
int n,m,a[maxn],b[maxn],k[maxm],p[maxm],dp[maxm][11];
int main()
{
    while(~scanf("%d%d",&n,&m))
    {        int ma=0,mb=0;
        for(int i=1;i<=n;i++)
        {            scanf("%d%d",&a[i],&b[i]);
            ma=max(ma,a[i]),mb=max(mb,b[i]);
        }
        int mp=0;
        for(int i=1;i<=m;i++)
        {            scanf("%d%d",&k[i],&p[i]);
            mp=max(mp,p[i]);
        }
        if(mp<=mb)
        {            printf("-1\n");
            continue;
        }
        for(int i=0;i<=mb;i++)
        {            dp[0][i]=0;
            for(int j=1;j<=ma;j++)
            {                dp[j][i]=INF;
                for(int l=1;l<=m;l++)
                    if(p[l]>i)
                    {                        if(p[l]-i>=j)dp[j][i]=min(dp[j][i],k[l]);
                        else dp[j][i]=min(dp[j][i],dp[j-(p[l]-i)][i]+k[l]);
                    }
            }
        }
        ll ans=0;
        for(int i=1;i<=n;i++)ans+=dp[a[i]][b[i]];
        printf("%lld\n",ans);
    }
    return 0;
}

HDU 6082 度度熊与邪恶大魔王(01背包)相关推荐

  1. HDU 6082 度度熊与邪恶大魔王 (完全背包)

    度度熊与邪恶大魔王                                                                 Time Limit: 2000/1000 MS ( ...

  2. HDU - 6082 度度熊与邪恶大魔王(背包变式)

    度度熊与邪恶大魔王 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式,需 ...

  3. HDU - 6082——度度熊与邪恶大魔王 (背包+DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082 思路:dp[i][j]代表打死血量为i,防御力为j的怪兽要用的最少晶石.用背包的方式dp. #i ...

  4. 【hdu 6082 度度熊与邪恶大魔王 】 完全背包

    hdu 6082 这道题一拿过来 对一个熊直接跑完全背包 然后跑 100000 次 完美TLE 其实因为对一个熊跑的时候 下次熊还是会跑的 于是需要对所有的熊直接完全背包预处理 设 dp[i][j] ...

  5. HDOJ 6082 度度熊与邪恶大魔王

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082 百度之星2017资格赛的第三题. 自从从集训队退出之后,就再也没有做过题目了,当天晚上突然看到短 ...

  6. [HDU P6082]度度熊与邪恶大魔王

    原题链接 有点意外的DP 其实一开始的思路也是背包 但是思考方向的不对 后来看了题解 就是 DP[i][j]表示在防御力为i的情况下打出j点伤害所需的最小晶石数 枚举魔法的时候 如果直接能打掉就用这招 ...

  7. 百度之星2017资格赛 1003 度度熊与邪恶大魔王 完全背包

    定义状态dp[i][j][t]代表前i种攻击,当前怪物生命值为j,防御力为t,所需要的最小代价. 利用完全背包的方法很容易得到 (p[i] = 第i种方法的攻击值减去防御值t) dp[i][j][t] ...

  8. 百度之星资格赛1003 度度熊与邪恶大魔王(dp)--2017

    度度熊与邪恶大魔王 Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊 ...

  9. 2017百度之星资格赛:1003. 度度熊与邪恶大魔王

    度度熊与邪恶大魔王  Accepts: 1288  Submissions: 7716  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 3 ...

最新文章

  1. nginx源码分析--内存对齐处理
  2. 专用计算机教室设备,计算机教室专用规章制度
  3. 小豆包的学习之旅:里程计运动模型
  4. 电脑安全注意事项_别墅装修设计注意事项 别墅装修的陷阱有哪些
  5. “极品时刻表”被挂马 已有6万网民遭攻击
  6. stm32单片机屏幕一直闪_用STM32做一个微型掌上示波器项目——终于鼓起在大牛前献丑的无比勇气...
  7. PHP 常见header 状态
  8. 强悍的 Linux —— 强悍的 ls
  9. 【Spring笔记】使用javaconfig配置
  10. 计算机软考笔试知识点,计算机软考考试必备知识点:关键链法
  11. xp系统计算机蓝屏,xp系统电脑一直蓝屏重启循环的原因和解决方法
  12. 【开心小丫头】滚滚长江
  13. matlab ode45的使用
  14. 新电脑win10系统的一个BUG
  15. python的requests.get()方法获取百度搜索结果页面失败的问题
  16. 二维码20项应用模式大盘点
  17. java中的<<符号是什么意思
  18. Android 跳过开机界面 直接软件自启动 Android做自己的桌面 替代原生桌面 Android开发自己桌面
  19. 编制程序完成下述任务:接受两个数,一个为用 户一年期定期存款金额,一个为按照百分比格式表示的利率;程序计算一年期满后本金与利息总额。说明:(1)存款金额以人民币元为单位,可能精确到分; (2)输入利率
  20. real time robust malicious traffic detection via frequency domain analysis记录一下

热门文章

  1. igh ethercat应用层代码分析
  2. 牛一网ecshop家电数码模板(仿易迅网)for ecshop 2.7.3
  3. python 3爬取 12306余票
  4. 【学习笔记】关于苹果Safari浏览器不支持sessionStorage的问题
  5. openh264 Windows 平台x64版本编译
  6. 微信公众号 H5 jssdk 分享卡片功能实现(亲测使用)
  7. LeetCode--路径总和III
  8. Android studio 集成Unity
  9. java计算机毕业设计体育城场地预定系统前台源码+系统+数据库+lw文档+mybatis+运行部署
  10. 关注点云 专栏及博主