标题一定要长虽然我不知道为什么只知道一定要这样你一定会进来的吧

把f[i1][i2][i3][i4][i5]五维背包换成f[5000000],做一个函数hash:

int hash(int a,int b,int c,int d,int e)
{
return a*(v[2]+1)*(v[3]+1)*(v[4]+1)*(v[5]+1)+b*(v[3]+1)*(v[4]+1)*(v[5]+1)+c*(v[4]+1)*(v[5]+1)+d*(v[5]+1)+e;
}

哪位大神解释一下此题为何能用这种方式压缩,而且不重复&&hash <= 5000000

8 条评论

  • @ 2017-03-02 22:38:58

    类似字符串匹配的rkhash,直接压维,原理跟楼下说的类似

  • @ 2017-03-02 21:51:53

    关于这个hash,个人觉得应该跟进制差不多,只不过每一位乘的数不一样

  • @ 2016-09-01 19:48:55

    你居然吸引了**tw2!!!**

  • @ 2014-11-03 21:56:21

    膜拜大神Orz

  • @ 2014-07-15 16:18:12

    支持楼上的一定要长虽然我不知道为什么只知道一定要这样你一定会和我一起支持楼上的吧

  • @ 2014-07-07 14:27:26

    本质上还是一个进位制的问题,不过每位往前进的不一样罢了。

  • @ 2014-07-07 01:25:30

    帮你做了下格式处理。
    如果需要贴代码,请这样操作:

    选中代码块,按下table键使得代码块每一行前搜有一个制表符。
    然后再在代码块上下添加一个空行。可以按Ctrl+Enter预览。

  • @ 2014-07-05 23:05:21

    回复一定要长虽然我不知道为什么只知道一定要这样你一定会进来的吧

  • 1

信息

ID
1426
难度
6
分类
动态规划 | 状态压缩DP动态规划 | 背包 点击显示
标签
递交数
994
已通过
253
通过率
25%
被复制
3
上传者