田忌赛马的证明过程
来源:互联网 发布:16年淘宝卖零食要证吗 编辑:程序博客网 时间:2024/05/17 03:36
田忌赛马的证明过程
HDU1052的贪心证明
符号定义如下:
T小:田忌当前最小的马。 T大:田忌当前最大的马。
Q小:齐王当前最小的马。 Q大:齐王当前最大的马。
1、若Q小 < T小,即Q小 < T小 < T全部,此时田忌付出任何代价都会获得胜利,因此最优情况为付出代价最小的情况。所以T小 > Q小时,用T小对战Q小。
2、若T小 < Q小,此时T小无法战胜任意一匹马,此时其利益即为消耗齐王马匹,因此选择消耗齐王最强的马。所以T小 < Q小时,用T小对战Q大。
此时只剩T小 = Q小的情况了。在讨论T小 = Q小之前,我们先来讨论几个必要问题:
3、最优情况是否会出现两个以上不同的平局情况?
假设出现三个平局的情况例如:3-3 5-5 6-6,则我们可以转换为3-6 5-3 6-5,此时更优, 因此不会出现两个以上不同的平局情况。
4、两个平局的情况是否都可以等价的转换为无平局情况?
假设最优的情况对应为:1-1 3-3,我们转换为1-3 3-1,对于原方案是等价的。
结论:最优策略总可以等价为最多只有一个平局的策略。
5、若T大 > Q大,则此时T大是否应与Q大匹配?若不与Q大匹配,则其只能为以下几种情况:
替代掉唯一的平局,则会使平局数-1,而被解放的马只能解放更小的马,因此并不能继续将胜局扩大,总有一匹马要与Q大匹配,这会产生一个败局,因此这种情况的解决为,将一个胜局与一个平局变为一个一个胜局与一个败局,因此不优。
替代掉一个胜局,有上述情况类似。
替代掉一个败局,由结论2、3、4可知,此时替换出来的为一个更劣的马,因此无法产生更优的解。
综上,若T大 > Q大,则总是用T大去对战Q大。
开始考虑T小 = Q小 的情况:
6、若T小 = Q小,此时T小分为选择Q小,或不选择Q小,若不选择Q小,根据2.的结论,应选择Q大,因此该情况下T小的选择只有两种:Q小、Q大。由于结论5,此时Q大与T大的关系只有两种:
- T大 < Q大,此时田忌没有马能战胜Q大,因此付出最小代价,最优解为:用T小对战Q大。
- T大 = Q大,此时:
- 若其余情况存在平局情况,则出现3个平局的情况,根据结论3,总应该用T小对战Q大得到最优解。
- 若其余情况不存在平局情况,则根据结论4,用T小对战Q大 与 对战Q小等价。
综上所述,若T小 = Q小,用T小对战Q大总为最优情况。
但此时的收益可能存在特殊情况,若Q小 = T小 = T大,收益为0,否则即为Q小 = T小 < T大,收益为-200。
7、对结论2、5的一个思考:优先考虑T大 > Q大不受结论2的约束。
结论:
若T大 > Q大,T大对战Q大,收益+200;
否则,若T小 > Q小,T小对战Q小,收益+200;
否则,若T小 < Q小,T小对战Q大,收益 -200;
否则,即为T小 = Q小,此时用T小对战Q大:若T小 = Q大,收益为0;否则,收益 -200。
- 田忌赛马的证明过程
- 田忌赛马-贪心正确性证明
- hdu1052 田忌赛马 贪心正确性证明
- seo与田忌赛马的故事
- 田忌赛马
- 田忌赛马
- 田忌赛马
- 田忌赛马
- nyoj364(田忌赛马)
- 田忌赛马
- nyoj364田忌赛马
- HDOJ1052田忌赛马
- acm-田忌赛马
- 田忌赛马
- 田忌赛马
- NYOJ364 田忌赛马
- nyoj364田忌赛马
- LA3266田忌赛马
- SQOOP Job使用
- 【模板】AC自动机
- python virtualenv在window linux平台的安装与使用
- 我曾七次鄙视自己的灵魂
- MySQL UNION 连接操作符整理
- 田忌赛马的证明过程
- jQuery 事件
- 【POJ 2391 】Ombrophobic Bovines 【floyd +二分+最大流】
- 此文无题,谨献给我,一个不忿的人
- Rhyme/Java 多态的深入理解—多态的详细分析以及多态应用之钩子函数的详细解释
- Others12_瞳距测量的方法大全
- Linux中数据类型
- 操作系统与虚拟化安全第一次作业-关键习题
- Hibernate入门到开发五之复杂属性的映射