hdu 3469 (tju 3552) Catching the Thief 博弈 数学题
来源:互联网 发布:软件自动化测试ppt 编辑:程序博客网 时间:2024/06/05 14:25
解题报告:
事实上如果是n(n>2)个房,答案就是2n-4,具体探法是: 2,3,4...(n-2),(n-1);\(n-1),(n-2),(n-3)...3,2
证明(感觉像在做高中数学题):还是以5个房为例子,对于小偷可能在的房间标以"0”来表示;小偷不可能在的房间标以"1”来表示?;S代表当天探索的房间,当然,S=1
0:0 0 0 0 0
1:0 S 0 0 0
2:1 0 S 0 0
3:0 1 0 S 0
4:1 0 1 S 1
5:0 1 S 1 1
6:1 S 1 1 1
假设第i天第j个房状态为X[i,j],?我们的目标就是从全0变成全1
每一天我们可以指定某个X[i,j]=S=1,其他X[i,j]?=X[i-1,j-1]?*?X[i-1,j+1]。简单的说,就是除了搜索的房间,其他任何房间的值必定小于等于它左边房间或右边房间上一天的值。设一个函数Y,Y等于两头房间的值加上两倍中间n-2个房间的值 Y[i]=X[i,1]+2*X[i,2]+2*X[i,3]+2*X[i,4]+......+2*X[i,n-2]+2*X[i,n-1]+X[i,n]
那如果不考虑搜索的房间,Y肯定每天都在变小,因为:
?第1间房至第n-1间房的值分别小于前一天第2间房至第n间房的值
?第2间房至第n间房的值又分别小于前一天第1间房至第n-1间房的值
除了四种情况:全部房间都是0;全部房间都是1;奇数号房间都是0偶数号房间都是1;奇数号房间都是1偶数号房间都是0(后两者成为“0,1相间的出现”)但是全是1是最终态,所以也就是三种情况了
由于S的存在,最多可以使Y增加2,就是说除了上述的情况,Y每天可以增加1;而出现上述情况时,Y最多可以加2。
那么要从初始状态的全0(Y=0)变到最终的全1(Y=2n-2),正常来说最快需要2n-2天。
考虑到如果在每天都有增加的情况下,可以出现一次“全部房间都是0”以及一次“0,1相间的出现”,所以可以再少两天,就是2n-4天
除了四种情况:全部房间都是0;全部房间都是1;奇数号房间都是0偶数号房间都是1;奇数号房间都是1偶数号房间都是0(后两者成为“0,1相间的出现”)但是全是1是最终态,所以也就是三种情况了
由于S的存在,最多可以使Y增加2,就是说除了上述的情况,Y每天可以增加1;而出现上述情况时,Y最多可以加2。
那么要从初始状态的全0(Y=0)变到最终的全1(Y=2n-2),正常来说最快需要2n-2天。
考虑到如果在每天都有增加的情况下,可以出现一次“全部房间都是0”以及一次“0,1相间的出现”,所以可以再少两天,就是2n-4天
有人说,为什么不可以出现两次“0,1相间的出现”的情况?
因为“0,1相间的出现”的时候对应的Y值为n或n+1。
在每天Y都在增加的情况下,即使出现了两次“0,1相间的出现”的情况,它们分别等于n和n+1,那么第一次出现也没有为Y带来2的飞跃,所以没有任何意义。
代码:
#include<stdio.h>int main(){ int t,n,i,result; scanf("%d",&t); for(i=1;i<=t;i++) { scanf("%d",&n); if(n==1) result=1; else if(n==2) result=2; else result=2*n-4; printf("Case %d: %d\n",i,result); } return 0;}
0 0
- hdu 3469 (tju 3552) Catching the Thief 博弈 数学题
- HDU 3469 Catching the Thief (博弈 + DP递推)
- hdu 3469 Catching the Thief
- hdu catch the thief
- The thief
- TJU-4113- Determine X(数学题)
- hdu 1071 The area 数学题
- HDU 1071 The area 数学题
- hdu 1071 The area(数学题)
- hdu 1983 Kaitou Kid - The Phantom Thief (2) DFS + BFS
- hdu 1983 Kaitou Kid - The Phantom Thief (2) (DFS+BFS)
- hdu 1982 Kaitou Kid - The Phantom Thief (1) (水。。)
- HDU 1983 - Kaitou Kid - The Phantom Thief (2)
- HDU 1983 Kaitou Kid - The Phantom Thief (2)
- HDU 1983 Kaitou Kid - The Phantom Thief (2)
- hdu 1982 Kaitou Kid - The Phantom Thief (1)
- hdu 1982——Kaitou Kid - The Phantom Thief (1)
- hdu 1983 Kaitou Kid - The Phantom Thief (2)
- hdu 1098 多项式整除问题
- MyEclipse 关闭debug
- ZOJ 1318 (第k个序列,简单数学题)
- 俗话说。。俗话又说。。
- 设计模式学习之策略模式
- hdu 3469 (tju 3552) Catching the Thief 博弈 数学题
- hdu 3471 (tju 3554) England vs Germany (计算几何)
- 混合图的欧拉回路
- 理解透彻--802.1d,802.1w,802.1s与802.1q
- hdu3472 (tju3555) HS BDC (混合图的欧拉回路)
- JSP技术详解
- KMP算法详解
- bitmap再出江湖:a.txt中有40亿个无符号整数, b.txt中有10000个无符号整数, 求交集。 可用内存:1G
- 求单源最短路的SPFA算法