摘要: 又是汉诺塔~回顾一下汉诺塔的移动过程。从左到右设为A,B,C 3个盘子的时候1: No.1 A -> C2: No.2 A -> B3: No.1 C -> B4: No.3 A -> C5: No.1 B -> A6: No.2 B -> C7: No.1 A -> C.把第n个盘子移动到C前,第... 阅读全文
posted @ 2013-07-29 22:21 hr_whisper 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 找规律就好了。会发现对称性。。。。用的找规律代码:#include #include using namespace std; int cnt=1;void f (int n, char A, char B, char C){ if (n == 1) { cout " ... 阅读全文
posted @ 2013-07-29 18:39 hr_whisper 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目:n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列。由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系 :n=m+p+qa1>a2>...>amb1>b2>...>bpc1>c2>...>cq计算所有... 阅读全文
posted @ 2013-07-29 18:32 hr_whisper 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 水题。轻松的AC了题目大意:在n*n的网格中填了一些大写字母,你的任务是把剩下的格子也填满大写字母,使得任意两个相邻的格子(即有个公共边的格子)中的字母不同,如果有多重填法,按照要求从上到下,左到右的顺序把所有格子连接起来得到的字符串的字典序尽量小。很简单的,直接一位一位实验,看是否冲突,从A到Z。... 阅读全文
posted @ 2013-07-29 18:22 hr_whisper 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 看到限时3S,自己写了一个二重循环的,然后华丽的 TLE。。。T T瞄了瞄书上,作者的思路果然是很好。膜拜中。他只枚举了终点,然后用二分查找。用到了lower_bound函数,这个lower_bound(first,last,val)在first和last中的前闭后开区间进行二分查找,返回大于或等于... 阅读全文
posted @ 2013-07-29 16:12 hr_whisper 阅读(167) 评论(0) 推荐(0) 编辑