for (int i = 1; i <= n; i++) { for (int j = sum; j >= 1; j--) { if (j == s[i])f[i][j] = 1; else if (f[i - 1][j + s[i]])f[i][j] = 1; else if (f[i - 1][j])f[i][j] = 1; else if (f[i - 1][abs(j - s[i])])f[i][j] = 1; } }
这边的j大小倒过来枚举为什么不可以,哪里产生了影响啊