其他题目就不发博客了(有些也没做出来!!),感觉这次百度之星资格赛题目数据有毒,吐槽,其他题目也不好说,感觉这个题目正常点。
这个题目我当时想到的就是动态规划,但是评论中很多人说是贪心,我一直不理解,认为他们对于贪心和动态规划之间的范畴没有搞清楚(可能是我没搞清楚!有错误请dalao指正),可能有dalao能贪心出来(一脸敬佩);虽然知道是动态规划问题,可转移方程怎么搞?我一直在想(比较弱!!),想了许多的动态规划的方法,还是用打表的方式(就是每种可能出现的怪兽,根据这组数据的技能和伤害值,用数组记录它消耗的最小晶石数目),这样全部出来了就方便了,将出现的怪兽消耗的最小晶石数目加起来即可;比赛开始一个小时才AC这个题目,一发AC(比较开心),有dalao有更好的方法请赐教(万分感谢!!)。

AC代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const long long INF=1e15;
const int maxn=100000+10;
const int maxm=1000+10;
struct P{int live;//怪兽的生命值 int figth;//怪兽的防御力
}p[maxn];
struct V{int money;//技能的消耗晶石数目int shai;//技能的伤害值
}v[maxm];
long long  ans[maxm][15];//存储每种怪兽需要消耗的最小晶石数目
int n,m;
bool cmpp(P a,P b)
{return a.figth>b.figth;//以怪兽的防御力从大到小排序
}
bool cmpv(V a,V b)
{return a.shai>b.shai;//以技能的伤害值从大到小排序
}
int main()
{while(scanf("%d%d",&n,&m)==2){int i,j,k;for(i=0;i<n;i++){scanf("%d%d",&p[i].live,&p[i].figth);}for(i=0;i<m;i++){scanf("%d%d",&v[i].money,&v[i].shai);}sort(p,p+n,cmpp);sort(v,v+m,cmpv);if(p[0].figth>=v[0].shai)//当怪兽的最大防御力大于等于技能的最大伤害值,不可能消灭全部怪兽 {printf("-1\n");continue;}else{fill(&ans[0][0],&ans[0][0]+maxm*15,INF);//初始每种怪兽都需要消耗无穷大晶石数目,因为是取最小值 for(i=0;i<=10;i++)ans[0][i]=0;//当怪兽的生命值为0时,消耗0晶石for(i=1;i<=1000;i++){for(j=0;j<=10;j++){for(k=0;k<m;k++){int s=v[k].shai;if(s>=i+j)s=i;else{if(s<=j)s=0;elses-=j;}//因为i-s不能<0,所以进行判断赋值,i-s相当于怪兽被技能攻击还剩余的生命值  ans[i][j]=min(ans[i][j],ans[i-s][j]+v[k].money);}}}long long sum=0;for(i=0;i<n;i++)sum+=ans[p[i].live][p[i].figth];//加上每种怪兽需要消耗的最小晶石数目printf("%I64d\n",sum);}}return 0;
}

2017百度之星资格赛—1003度度熊与邪恶大魔王相关推荐

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

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

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

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

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

    本题我们可以类比背包 背包dp[i][j] 表示再有i个物品下j个空间所获得的最大价值 本题dp[i][j] 可以表示干掉i个血量j个防御力下的最小花费 我们看其实我们就是在不同血量之间转移 如果当前 ...

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

    #代码: #include<bits/stdc++.h> #define MAXN 1050using namespace std; int n,m; long long int dp[M ...

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

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

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

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

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

    题目链接: http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=774&pid=1003 题目大意: a[i], ...

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

    分析 挺好的一道题 dp[i][j]表示打败i颗血j防御力的怪兽需要的最少宝石数 然后就好了,复杂度\(O(n+m*1000*10)\) #include <bits/stdc++.h> ...

  9. (百度之星资格赛) 度度熊与邪恶大魔王 (dp)

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

最新文章

  1. 机器学习中需要了解的 5 种采样方法
  2. ios 设备方向判断
  3. 内存泄露从入门到精通三部曲之常见原因与用户实践
  4. Visual Tracking:运行ECO模型
  5. 用键盘来操纵鼠标指针(鼠标损坏时的应急措施)
  6. mysql 触发器定义变量_MySQL 函数存储过程触发器定义简单示例
  7. 331页!2021年的精华尽在这本数据库技术年刊
  8. 大数据分析的思路与流程
  9. 印象笔记 还回快捷_搭配这9款实用的第三方工具,小白也可以玩转印象笔记
  10. WIN10外接显示器有妙招
  11. python:实现Lempel-Ziv算法(附完整源码)
  12. 大学课设之Mysql图书管理设计
  13. imag.js|快速掌握全局方法
  14. 今日算法笔试练习【5】(08-06)(历年笔试题)
  15. js-array数组-slice-splice
  16. C语言程序设计教程(第三版)课后习题5.7
  17. 724运维日 | 向运维人致敬!
  18. 脑机接口再突破,让失语者能“说话”
  19. JDK1.8中文文档-阿里云盘
  20. 商品详情页系统架构-笔记4-商品详情页多级缓存

热门文章

  1. 大型系统存储层迁移实践
  2. 新用户腾讯云国外服务器2核4G服务器使用攻略
  3. Scrapy学习第四课
  4. 用python搭建 百万答题 、自动百度搜索答案
  5. 张孝祥老师的java高新技术
  6. 投稿指南【NO.7】目标检测论文写作模板(初稿)
  7. iOS开发 关于tableView加载图片时出现卡顿时的解决办法
  8. 计算机导师团队如何发邮件,研究生给导师发邮件的3个模板
  9. 西门子三菱台达PLC读取国网DLT645协议电表数据方案
  10. 软件看门狗和硬件看门狗