10分求助!背包
查看原帖
10分求助!背包
830485
Verdammt_scheisse楼主2024/5/19 11:48
#include <bits/stdc++.h>
using namespace std;
long dp[10000000] = {0}, c[10000000] = {0}, w[10000000] = {0}; 
int main() {
    long a, b,sum,sum1;
    cin >> a >> b;
    
    for (int i = 1; i <= a; i++) {
        cin >> w[i] >>c[i] ;
        sum+=w[i];
    }
    for (int i = 1; i <= a; i++) {
        for (int j = sum; j >= w[i]; j--) {
            dp[j] = max(dp[j], dp[j - w[i]] + c[i]);
        }
    }
    int u=0;
    for(int i=0;i<sum;i++)
    {
    	if(dp[i]>=b)
    	{
    		u=1;
    		cout <<i;
    		break;
   		}
   	}
   	if(!u)
   		cout << "no solution"; 
    return 0;
}
 
2024/5/19 11:48
加载中...