HDU 3732 Ahui Writes Word 解题报告

来源:互联网 发布:分层算法 编辑:程序博客网 时间:2024/04/30 03:43

题目大意:

      n个单词,第i个单词的复杂度为c[i],价值为v[i],在可承受复杂度为C的条件下最多可以获得的最大价值为多少?

解题报告:

      直观上看本题是一个典型的01背包模板题。但是若不注意题目给出的数据,很可能就有遭遇TLE而被卡了!注意数据范围:1<=n<=100000,1<=C<=10000,0<=v[i],c[i]<=10。用01背包求解时O(n*C)的复杂度,而题目给出的时间限制为1000ms,显然过不了。实际上观察数据范围发现,v[i]和c[i]都是很小的,也就是说如果按照复杂度和价值分类最多也就只有100个物品,只是各类物品的数量不同。用word[i][j]表示复杂度为i价值为j的物品的数量,于是这道题就转化成了多重背包问题。

原创粉丝点击