正解会,但是用多重背包应该咋写qwq

P1450 [HAOI2008] 硬币购物

@[SupperPiggy](/user/432491) 同求啊! ```cpp #include<bits/stdc++.h> using namespace std; const int N=1e5+5; int a[N],d[N],w[N],f[N]; int main(){ int n=4,t; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } scanf("%d",&t); while(t--){ int v,cnt=0; for(int i=1;i<=n;i++){ scanf("%d",&d[i]); int k=0; while(d[i]>=(1<<k)){ w[++cnt]=a[i]*(1<<k); d[i]=d[i]-(1<<k); k++; } if(d[i]){ w[++cnt]=a[i]*d[i]; } } scanf("%d",&v); memset(f,0,sizeof(f)); f[0]=1; for(int i=1;i<=cnt;i++) for(int j=v;j>=w[i];j--) f[j]=f[j]+f[j-w[i]]; printf("%d\n",f[v]); } return 0; } ```
by reclusive @ 2023-10-31 11:43:14


是不是说... 多重背包求方案数没法二进制拆分?
by ThinkLongLong @ 2023-11-02 17:55:09


think long long 没开long long壁挂 多重背包求方案数没法二进制拆分? -当然可以
by 孔繁臻帅哥 @ 2023-12-21 13:16:08


@[孔繁臻帅哥](/user/365855) 请问大佬怎么二进制拆分呢orz 想了好久,没想出来
by ThinkLongLong @ 2023-12-24 14:43:51


如果有时间可不可以给份代码orz 网上找了,没有
by ThinkLongLong @ 2023-12-24 14:45:34


@[ThinkLongLong](/user/432491) 好像是不行,非常抱歉,我昨晚熬了一晚也处理完重复计数的问题,多重背包求方案数对于这种会出现重复的题目是实现不了的,我问了我教练,他说处理不了
by 孔繁臻帅哥 @ 2024-01-05 13:09:56


|