度度熊与邪恶大魔王
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082

Problem 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 Source 2017"百度之星"程序设计大赛 - 资格赛

#include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; const LL INF=1e18+7; LL n,m,f[155][5507]; LL maxp,max1,max2,ans,mn; LL a[100007],b[100007],v[100007],p[100007]; void first(){ for(int i=0;i<=max2;i++) for(int j=1;j<=max1+maxp;j++) f[i][j]=INF; for(int k=0;k<=max2;k++) for(int i=1;i<=m;i++){ LL now=p[i]-(LL)k; if(now<=0) continue; for(int j=1;j<=maxp+max1;j++){ if(j-now>=0) f[k][j]=min(f[k][j],f[k][j-now]+v[i]); else f[k][j]=min(f[k][j],v[i]); } } } int main() { while(scanf("%lld %lld",&n,&m)!=EOF) { maxp=max1=max2=ans=mn=0; for(int i=1;i<=n;i++) { scanf("%lld%lld",&a[i],&b[i]), max1=max(a[i],max1),max2=max(max2,b[i]); } for(int i=1;i<=m;i++) { scanf("%lld%lld",&v[i],&p[i]); maxp=max(maxp,p[i]); } if(max2>=maxp) { printf("-1\n"); continue; } first(); for(int i=1;i<=n;i++) ans+=f[b[i]][a[i]]; printf("%lld\n",ans); } return 0; }
数据怎么大,有像背包(有递推性质),那就dp吧。
f[i][j]表示要杀掉防御为i,生命为j的怪兽需要的水晶。
dp时要注意:如果不能破防,就不要用该技能啦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App