青铜A 数学 B站讲解视频https://www.bilibili.com/video/BV1W5411G7cX?p=1
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef double db; typedef vector<int> vii; typedef vector<ll> vll; typedef pair<int,int> PII; #define so sizeof #define pb push_back #define fi first #define se second #define mp make_pair #define lb lower_bound #define ub upper_bound const db esp=1e-5; const int N=1e3+10,M=1e2+10,Max=1e5+5,inf=0x3f3f3f3f,mod=1000000007; const ll INF=0x3f3f3f3f3f3f3f3f; ll dp[N]; class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回总体积为V若干物品的最大总重量,如果g存在选择若干物品总体积为V的情况,返回-1 * @param v int整型vector * @param g int整型vector * @param V int整型 * @return int整型 */ int Maximumweight(vector<int>& v, vector<int>& g, int V) { // write code here int n=v.size(); int ans=-1; for(int se=1;se<(1<<n);se++){ int vs=0, gs=0; for(int i=0;i<n;i++){ if(se>>i&1) vs+=v[i], gs+=g[i]; } if(vs==V) ans=max(ans,gs); } return ans; } }T;