暴力背包样例没过求调,悬关

P2732 [USACO3.3] 商店购物 Shopping Offers

@[jhdrgfj](/user/776582) 改了一下 ```cpp #include<bits/stdc++.h> using namespace std; struct y{ int c[1005],p; }y[105]; struct z{ int k,p; }z[1005]; int s,dp[6][6][6][6][6],n,cnt=1,a[10]; int qb(int a1,int a2,int a3,int a4,int a5){ return a1*z[a[1]].p+a2*z[a[2]].p+a3*z[a[3]].p+a4*z[a[4]].p+a5*z[a[5]].p; } int main() { cin>>s; for (int i=1;i<=s;i++){ int x; cin>>x; for (int j=1;j<=x;j++){ int c,k; cin>>c>>k; y[i].c[c]+=k; } int p; cin>>p; y[i].p=p; } int b; cin>>b; for (int i=1;i<=b;i++){ int c,k,p; cin>>a[i]>>k>>p; z[a[i]].k=k; z[a[i]].p=p; } for (int i1=0;i1<=z[a[1]].k;i1++){ for (int i2=0;i2<=z[a[2]].k;i2++){ for (int i3=0;i3<=z[a[3]].k;i3++){ for (int i4=0;i4<=z[a[4]].k;i4++){ for (int i5=0;i5<=z[a[5]].k;i5++){ dp[i1][i2][i3][i4][i5]=qb(i1,i2,i3,i4,i5); for (int j=1;j<=s;j++){ dp[i1][i2][i3][i4][i5]=min( dp[i1][i2][i3][i4][i5], dp[i1-y[j].c[a[1]]][i2-y[j].c[a[2]]][i3-y[j].c[a[3]]][i4-y[j].c[a[4]]][i5-y[j].c[a[5]]]+ y[j].p ); } } } } } } cout<<dp[z[a[1]].k][z[a[2]].k][z[a[3]].k][z[a[4]].k][z[a[5]].k]; } ```
by jhdrgfj @ 2023-05-07 15:35:54


|