这几天在着力解决背包。
这个月1号和2号看了背包九讲前几章,感触很深,感觉9月份看的东西有的忘记了,有的还存留着一些记忆。不过这次是打印出来看了,看纸质版的资料果然自己更加认真。
进入正题吧:
3624:01背包,最简单的
1276:多重背包,这道题非常坑人,我试了好多次,觉得自己的数据对了,但是提交上去总是WA,直到第二天都是这样,我改了又改,几乎检查了所有可能出错的地方,为了防止范围不够,又把各数组范围设置大一些了,最终仍然WA。最后我死马当活马医,把输入的cin用scanf替换掉了。结果提交后,瞬间AC。泪奔啦。。。。。。
2392:多重背包。第一遍看完题,可能觉察不到那么简单,对key排序后,再仔细想透彻(关键就在这里),就明白可以用最经典的多重背包解决了。一定需要注意的一个地方,也是自己刚刚犯了错误的地方就是:这道题相当于背包九讲里所提到的“初始化0还是负无穷大”的问题,因为问题考察的点对应于01背包,并不是“最大化”,而是是否能够到达那个最远的距离。这对应于《背包九讲》的1.4“初始化的细节问题”。
1837:分组背包。这道题虽然后来WA,参考了别人的代码,更正了一两行代码后才AC。但是CODING之前,自己思考了很久,居然想到了可以抽象出分组背包的思路,感到很欣慰。大概是因为当时自己看纸质版的背包九讲的时候,看到分组背包这个地方特别认真吧,看来还是需要好好继续认真自习看书。