小结

来源:互联网 发布:怎么找淘宝达人 编辑:程序博客网 时间:2024/05/18 12:40

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