如果你打印选牌方案不是用 dfs,而是和我一样的直接从后往前减,一定要判断是否到达了边界!!
for (int i=n; i>=1; i--) { if (f[i-1][sum-a[i]] && sum-a[i]>=0) ans=ans+'H', sum-=a[i]; //这里一定要判 a[i] 的边界!!! else ans=ans+'T', sum-=b[i]; }
只有我这种蒟蒻才会错吧。。