[GESP202512 六级] 道具商店
2026-09-11 20:25:42
发布于:浙江
13阅读
0回复
0点赞
题干分析
题目描述已足够清楚,这里不多做赘述。
思路
看完题目可以发现,只是一道 0-1 背包板子题,直接交:
#include<bits/stdc++.h>
using namespace std;
int n,k,a[505],c[505];
int main(){
cin>>n>>k;
int f[k+1];
memset(f,0,sizeof(f));
for(int i=1;i<=n;i++){
cin>>a[i]>>c[i];
}
f[0]=0;
for(int i=1;i<=n;i++){
for(int j=k;j>=c[i];j--){
f[j]=max(f[j],f[j-c[i]]+a[i]);
}
}
cout<<f[k];
}
可是, 了!
一看数据范围:
所以,我们要对 0-1 背包的做法进行一些改动。
我们将 设为攻击力为 所要花费的最少金币,那么状态转移方程为:
然后输出要从 开始,到 结束,如果有 ,那么输出 。
代码
没有代码,自己想去吧。
这里空空如也








有帮助,赞一个