跳房子——meet in the middle
Posted by-w
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跳房子——meet in the middle相关的知识,希望对你有一定的参考价值。
题目大意如下:
有n栋房子,每个房子都有一个高度,我们只能跳到右边任意一个高度不小于当前房子的房子上,同时我们可以获得上面的金币
现在告诉你有n栋房子的高度和对应的金币数量,给出要求m,求出在这些房子上跳跃的方案中金钱数超过m的方案数(n<=40,hi,ci<=10^9)
这种恶心的数据,一看到我就直接交上暴力(数据真心水,某些暴力跑的比标算还快)
emmm,这考的是一个经典思想——meet in the middle(某位dalao考场自己居然发明了)
我们把n分成两部分,1~n/2.n/2~n,暴力处理两部分
我们会得到2*2^20个结果,记录左边的终点和金币数,记录右边的起点和金币数
对于左边的每一个结果在右边的每一个可以到达的点上二分出它的位置,记录答案
好像就这么点了吧....
(请耐心等待作者上传代码)
以上是关于跳房子——meet in the middle的主要内容,如果未能解决你的问题,请参考以下文章
状态压缩 meet in middlepoj3139Balancing the Scale
SPOJ4580 ABCDEF(meet in the middle)