小结

1.字符串的最小表示  

eg: hdoj 2609 

2.汉诺塔相关

1) hdoj 1995  假设有n个盘,则第n个盘只移1次,第n-1个盘要移2次(n-1个盘移到B时和n-1个盘移到C时)....由此可得公式:S(i)=2^(n-I)
2) hdoj 1997 汉诺塔的移动:将n-1个盘借助C移到B,再将第n个盘移到C,再借助A将n-1个盘移到C。所以第n个盘不是在A就是在C,而由此便可通过递归判断第n-1个盘的位置来解决这道题:
第n个盘在A:n-1个盘处在借助C移到B的过程中。而对于n-1个盘,第n-1个盘相当于第n个 盘,所以判断第n-1个盘在A还是在B。
第n个盘在C:n-1个盘处在借助A移到C的过程中。同理。判断第n-1个盘在B还是C。
3) hdoj 2064 移动情况:n-1个盘移到B,再移到C,第n个盘移到B,n-1个盘移到B再移到A,第n个盘移到C,n-1个盘移到B再移到C。
4) hdoj 2175 设置一个数组re[I],存储将I个盘移到C的次数,找出一个区间:re[I]<m<re[I+1],若m==re[I]+1,则第m次移动的便是第I+1个盘。若m==re[I]时,则说明移动的是第一个盘。否则我们便可把问题化成步数为m-re[I]-1时的盘号。
5) hdoj 1207 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值