不要想太多!不要想太多!不要想太多!
考虑下面一组数据:
4
4 2 1 1
1 1 0
2 3 1

枚举所有情况:
- 直接买 0 号药水
- 买 2 瓶 1 号药水配置成 0 号药水
- 买 2 号药水、3 号药水配置成 0 号药水,然后买 1 号药水配置成 0 号药水
- 买 2 瓶 2 号药水、2 瓶 3 号药水配置成 2 瓶 1 号药水,然后配置成 0 号药水
根据枚举,该图一共 4 种情况。
可是,AC代码却计算出了 5 种情况!
这是因为对于一般情况,药水A与药水B配置成药水C的情况数转移方程为 SC=SA×SB
但是当药水A与药水A配置成药水C时,实际情况数转移方程为 SC=CSA2=2SA×(SA−1)
但是题目并没有考虑到这点,所以虽然在输入时要去重,但是计算时还是以 SC=SA×SB 来计算!