传送门

解题思路

背包,首先先用aoe都打残然后单伤补刀,用f[i]表示AOE打了i的伤害的最小花费,g[i]表示单伤打了i的伤害的最小花费。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdio>
#include<cstring>
#define int long long using namespace std;
const int MAXN = 105; inline int rd(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)) {f=ch=='-'?0:1;ch=getchar();}
while(isdigit(ch)) {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
return f?x:-x;
} int f[100005],g[100005],ans=0x3f3f3f3f;
int n,m,val[MAXN],cost[MAXN],hp[MAXN];
bool al[MAXN]; signed main(){
n=rd();memset(f,0x3f,sizeof(f));
memset(g,0x3f,sizeof(g));
for(register int i=1;i<=n;i++) hp[i]=rd();
m=rd();char c[MAXN],s[MAXN];
for(register int i=1;i<=m;i++){
scanf("%s",c+1);cost[i]=rd();
scanf("%s",s+1);if(s[1]=='A') al[i]=1;
val[i]=rd();
if(cost[i]==0 && val[i]>0) {cout<<0<<endl;return 0;}
if(val[i]>100000) val[i]=100000;
}f[0]=0;g[0]=0;
for(register int i=1;i<=m;i++){
if(al[i]){
for(register int j=val[i];j<=100000;j++)
f[j]=min(f[j],f[j-val[i]]+cost[i]);
}
else {
for(register int j=val[i];j<=100000;j++)
g[j]=min(g[j],g[j-val[i]]+cost[i]);
}
}
for(register int i=99999;i>=0;i--)
if(g[i]>g[i+1]) g[i]=g[i+1]; //打了i+1的伤害就一定打了i的伤害
for(register int i=0;i<=100000;i++) {
int now=f[i];if(now>ans) continue;
for(register int j=1;j<=n;j++){
if(hp[j]>i) now+=g[hp[j]-i];
if(now>ans) break;
}
ans=min(ans,now);
}cout<<ans<<endl;
}

最新文章

  1. C#获取IP和整数IP方法
  2. 关于C#垃圾回收
  3. Scipy学习笔记 矩阵计算
  4. WebService的两种方式SOAP和REST比较 (转)
  5. Yii1.1.16的安装(windows)
  6. cdoj 24 8球胜负(eight) 水题
  7. cocos2d-x 多分辨率适配详解(转载),以前北京团队设计的游戏,也是用这套方案
  8. Lua的function、closure和upvalue
  9. 专业的GIS(电子地图、地理信息系统)在房地产行业的初步应用?
  10. 让AutoMapper在你的项目里飞一会儿(转)
  11. class对象详解
  12. Nginx 入门学习教程
  13. RPC原理及实现
  14. 控制使用jquery load()方法载入新页面中的元素
  15. python--编写用例脚本
  16. 【C++】10.18日的C++笔记
  17. SQL Where in (1,2,3,4) 换成字段一列的值
  18. 2Y - sort
  19. string类型与ASCII byte[]转换
  20. android开发(35) fragment和actionbar组合使用。解决不触发onOptionsItemSelected的问题,获得actionbar 的默认 get icon

热门文章

  1. 18-4-bind
  2. js 实现加载百分比效果
  3. Linux 下 Nand Flash 驱动说明
  4. uoj51 元旦三侠的游戏
  5. mybatis 一对多和一对一写法注意事项
  6. 你知道的和不知道的sass
  7. WebService Exceptions
  8. date函数
  9. 关于前端调用后端php数据跨域的问题
  10. enctype=&quot;multipart/form-data&quot;的form传参