洛谷 P2871 [USACO07DEC] Charm Bracelet S 题解

题目链接

洛谷 P2871 [USACO07DEC] Charm Bracelet S

思路分析

0-1 背包模板题,详见洛谷 P1048 [NOIP 2005 普及组] 采药 题解

代码呈现

#include<bits/stdc++.h>
using namespace std;

const int N=3405,M=12885;
int n,m;
int w[N],d[N],dp[M];

int main(){
    scanf("%d%d",&n,&m);
    for (int i=1;i<=n;++i) scanf("%d%d",w+i,d+i);
    for (int i=1;i<=n;++i){
        for (int j=m;j>=w[i];--j) dp[j]=max(dp[j],dp[j-w[i]]+d[i]);
    }
    printf("%d",dp[m]);
    return 0;
}
posted @ 2026-01-02 14:52  CodingJuRuo  阅读(2)  评论(0)    收藏  举报