每位都要做一次01背包 但注意到每次背包时间复杂度为O( )是无法承受的 可以利用NTT优化背包使得时间复杂度降到 (这里n是指 ) 同时对于某些物品二进制不能为1的条件 我们直接做背包回滚(具体看代码,就是把物品从背包里扣掉- -) 我们也关心前 位究竟给了多少进位给第 位 并且这些不同进位的方案数是多少 可以...
一道水题,分组背包思想,第一次普通算法超时,然后用了二进制优化,依旧超时,真是无语,上网重新学习了一篇二进制解法 //朴素算法 #include <bits/stdc++.h> using namespace std; int main() { int n,m; while(scanf("%d%d",&n,&m)&&(n||m)) { int i,j,k,a[102],c[102],f[100002]; for(i...