17 条题解
-
0搁浅 LV 9 @ 2010-03-17 09:22:41
你的就是最优的思想了..
-
02009-10-26 21:35:58@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 25ms
├ 测试数据 06:答案正确... 9ms
├ 测试数据 07:答案正确... 25ms
├ 测试数据 08:答案正确... 25ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 41ms先排个序,再讨论每个数前3个(包括这个数)可能的情况,可以用搜索。。
-
02009-09-01 12:40:56@
首先,容易证明,对于A和C,以及B和D,|A-B|+|C-D|取得最小值仅当A>C且B>D时成立(本题题意要求没有等号)。这就是说两个序列尽量按降序对应才能得到最小值,亦即对于AD,可以通过交换A,C使得结果变小。
因此第一步当然是对两个序列进行降序排序。此时就有a[1]>a[2]>a[3]>...>a[n],b[1]>b[2]>b[3]>...>b[n]。现在问题就可以转化成固定a序列,交换b序列中的一些元素,使得满足题意(即找到一种决策,将a[i]=b[i]的b[i]与其相邻的b[k]交换来使得绝对值和最小)。首先排除边界情况,看一般的i。
若有a[i]!=b[i]则直接计算|a[i]-b[i]|;若a[i]==b[i],那么我们有如下决策:
1.交换b[i]与此时i-1对应的b元素;2.交换b[i]与b;3.交换(b,b),交换b[i]与此时的b,即使最后顺序是b,b[i],b.可以证明,这几种决策囊括了所有决策。
但是,问题来了,第一种决策要依赖b的取值。观察我们的决策并且结合引理,易知b可能取的只能是b,b,b。若b=b,那么交换b[i]与b一定不是最优决策。因为此时b与b或b是逆序,总可以找到一个能与b交换使得和更小。那么,我们可以用f(0,x)表示当前为b[x],前一个为b[x-1]的最优解,f(1,x)表示...为b[x-2]的...,f(2,x)表示...为b[x-2]的最优解。
综上,有状态转移方程:
1,a[i]==b[i]
f(0,i)=min{abs(a-b[i])+f(i,i+1),abs(a-b)+abs(a[i]-b)+abs(a-b[i])+f(1,i+3),abs(a-b)+abs(a[i]-b)+f(1,i+2)};
f(1,i)=min{abs(a-b[i])+f(2,i+1),abs(a-b)+abs(a[i]-b)+f(1,i+2),abs(a-b)+abs(a[i]-b)+abs(a-b[i])+f(1,i+3)};
f(2,i)=abs(a-b)+abs(a[i]-b)+f(1,i+2);
2,a[i]!=b[i]
f(0,i)=abs(a-b)+f(0,i+1);
f(1,i)=abs(a-b)+f(0,i+1);
f(2,i)=abs(a-b)+f(0,i+1);
这样就不会超时了。但是一定注意边界条件!为了这个我WA了N个。。。表达能力有限,见谅。
另外,神牛们不要光顾着AC啊,也说说简单方法啊!!
-
02009-07-27 10:35:25@
Orz cgy
较优化思想
应该是可以证明正确性的 -
02009-07-08 20:53:27@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 166ms
├ 测试数据 06:答案正确... 150ms
├ 测试数据 07:答案正确... 119ms
├ 测试数据 08:答案正确... 103ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 166ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:704ms
Orz cgy4ever!
写了个状压DP。。手感好了很多。
要用int64。 -
02009-06-10 19:44:02@
在cgy大牛的指点下A了~
注意变量范围啊~ -
02009-06-12 12:46:08@
不懂。不解。在大牛的指点下A了,尽管自己也不懂。
-
02009-06-04 18:20:38@
写了个并没有证明正确性但是AC了的DP
我开始写的DP挂在样例上了,然后就加了一种配对方法.
样例很有启示.ps:数据是10w要用scanf...又直接打的cin,TLE了一回..
-
02009-05-07 17:41:44@
乱搞吧......
-
02009-04-28 18:05:49@
谁解释一下DP?
-
02009-04-14 12:36:53@
哥们
左偏树 是堆耶
-
02009-04-13 09:56:13@
依我所见:
本题可用DP或者是匈牙利算法(二分图匹配)。
不知想法对不对,请大牛赐教.谢了!!!
了解了匈牙利算法(二分图匹配)不行,边存不下 -
02009-04-10 18:58:24@
左偏树?
-
02009-04-07 21:37:19@
首先,快排一下
然后.............
还没想出来~ -
02009-04-15 20:42:27@
居然稀里糊涂地过了!
我先快排,然后dp -
02009-04-05 20:03:50@
KM???
-
02009-04-03 19:05:28@
用DP做可否?
- 1