DP与记忆化搜索关联密切,原来一直搜索题瞬间就能写出代码,一遇到记忆化,就晕了,发现怎么也没法记,今天发现我的搜索方向不对。
以后自顶向下搜索,这样的话,前面状态先计算出来,而要用到的是后面的状态,所以不知道怎么记录。用题目说明。
C. 定向越野2
时间限制:
3000 ms 内存限制:
65535 KB
描述
这会,定向越野进行到白热化阶段,38211X小班的N个同学正分布在北航平面上各处。当然,这时候还有3820XX小班,3801XX小班等等各个小班的很多同学都在参加这个比赛。由于大家玩得都很起劲,本着友谊第一比赛第二的原则,裁判决定,换个方式,也就是不按原来的方式进行裁定。而新的方式具有一定随机性,所以谁是赢家也就算随机的了。
裁定方式如下
对平面上N个同学,两两结成队友关系,对于每个队友关系,求两个人之间距离,a1,a2,a3...aN/2代表每个小队的距离值
然后结果值即为sum=求和(a1,a2,a3,a4...aN/2)。
显然,虽然38211X小班的同学此时的位置是固定的,但是他们结队的方式是可以由自己决定的,身为班长的你,会怎么来安排这样结队关系,让sum的值最小呢?
对每组数据
数字N(1<=N<=8)
代表共N对结队关系
下面的2*N行每行为这位同学在平面上的坐标x,y(1<=x<=1000&&1<=y<=1000,且x和y都为整数)
多个同学不会在同一个位置
以0表示文件结尾
对每组数据,输出最小的sum值,结果保留2位小数
3 10 10 1 1 2 2 3 3 4 4 5 5 0
9.90
开始我的过程如此: 这个过程,只是把前面的状态保存了,结果怎么就不能记录下来,后来发现,我要用后面的状态!!!! And then,把代码改一下~~ 只是记录状态改了而已,结果就可以了……