P2150 [NOI2015] 寿司晚宴

写了两天。。。

就是说,状态压缩DP可以不用显示写出考虑到第i个数,直接每次考虑加入一个数会对当前状态造成的影响即可。

这道题发现了大质因数只有1个之后,就需要考虑有相同的大质因数之间的转移,和大质因数不同的之间的转移。

然后会发现没有大质因数的数需要特殊处理……

然后就好了……

调了好久……

原因在于不同大质因数之间转移的时候,没有清空g和w数组。

(g和w表示当前大质因数必须选,所以一开始肯定是0)。

调试的时候不要犹豫:

先写个小范围的状压出来。

把2作为小质因数,3、5作为大质因数。

然后会发现3、5之间的转移写错了。

不要怕麻烦,因为小质因数只有一个,状态只有0、1。

然后手写出来状态之间的更新关系,再和程序中进行比较。

这样大概1h以内就能发现没清空g和w。

这种状态设计比较好写:

posted @ 2023-10-25 09:51  Zlc晨鑫  阅读(8)  评论(0)    收藏  举报