bzoj2287:【POJ Challenge】消失之物
传送门
sb背包,先做一遍背包,然后考虑每个物品不用造成的影响
代码:
#include<cstdio>
int n,m,f[2001],a[2001],g[2001];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);f[0]=1;
for(int i=1;i<=n;i++)for(int j=m;j>=a[i];j--)(f[j]+=f[j-a[i]])%=10;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=m;j++)g[j]=f[j];
for(int j=0;j<=m-a[i];j++)g[j+a[i]]=(g[j+a[i]]-g[j]+10)%10;
for(int j=1;j<=m;j++)printf("%d",g[j]);printf("\n");
}
}