In classic knapsack, dp[w] stores the maximum value achievable with capacity w. But some problems don't ask for maximum value. They ask: "Can you make exactly this sum?" For these problems, dp[s] becomes a boolean: true if sum s is achievable, false otherwise. The formula changes too.
Instead of dp[w]=max(dp[w],dp[w−wt]+val), you get dp[s]=dp[s] OR dp[s−num]. This boolean version is called subset sum DP. It's simpler than value-based knapsack but appears everywhere: partition problems, target sum, even some game theory problems.