当前位置: 代码迷 >> 综合 >> PIPIOJ 1079: PIPI的存钱罐 完全背包
  详细解决方案

PIPIOJ 1079: PIPI的存钱罐 完全背包

热度:54   发布时间:2024-02-27 13:28:44.0

题目:

http://39.106.164.46/problem.php?id=1079

思路:

题目要求装满,然后又是完全背包。注意初始化时将dp初始化为INF,dp[0]=0即可。

代码如下:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cmath>
#include<queue>
#include<cstring>
#include<vector>
#include<stack>
#include<map>
#include<set>
#define MAX 505
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;int n,m;
int w[MAX],v[MAX],dp[10005];int main(){
    while(cin>>n>>m){
    memset(dp,INF,sizeof(dp));dp[0]=0;for(int i=0;i<n;i++){
    cin>>w[i]>>v[i];}for(int i=0;i<n;i++){
    for(int j=v[i];j<=m;j++){
    dp[j]=min(dp[j],dp[j-v[i]]+w[i]);}}cout<<dp[m]<<endl;}return 0;
}