上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页
摘要: 以前一直把动态规划当做递推,动态规划和递推编写起来虽然都有公式推导,但是动态规划还有一个决策的过程(Compare),事先并不知道选择哪种方案,通过计算比较之后才能做决定。 递推感觉上更像数学归纳法,易得n=1的值;知道n,求出通过n如何推导n+1(不需要证明)。对于递推题,不要去想结论,注重过程,每一步都对,无论结论多么匪夷可思,它都是对的。找规律:*2680观察小值,YY出规律,(再验证)1455 观察答案,有数字规律1354结论很简单,过程不复杂期望: (做了两题,还是不太会)*1074被黑书坑了*2096要考虑状态变化时的所有可能需要辅助计算的递推:*1037构造辅助工具(多维数... 阅读全文
posted @ 2012-08-24 13:52 蚀 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 250pt题意: 给定字符串,求使至多有一对相邻字符不同的排列数。分析: 至多有一对就说明至多只有两种字符,答案只可能是0(多于两种字符),1(一种字符),2(两种字符)。View Code #include <cstdlib> #include <cctype> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> #include <vector> #include <string> #include 阅读全文
posted @ 2012-08-15 10:16 蚀 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 250pt题意:给定两个只有两种字符组成的字符串,把一个字符变成另一个字符称为一次变换,求是否能从第一个字符串经过k次变换后变成第二个字符串。分析:首先求出至少需要多少次变换m,若k不小于m且k和m的差是偶数(1个字符通过两次变换后值不变),则能,否则不能.View Code class EasyConversionMachine { public: string isItPossible(string ow, string fw, int k) { int i,j,n=ow.size(); ... 阅读全文
posted @ 2012-07-29 14:02 蚀 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个序列,开始时为1,接下来每步,该序列中的1变为01,0变为10,求第n步时序列中连续的0有多少对?分析: 令Sn表示第n个序列,~Sn表示第n个序列的反,An表示第n步时序列中连续的0的对数。 0:1 1:01 2:1001 3:01101001 4:1001011001101001 5:01101001100101101001011001101001 观察可得,Sn=~Sn-1+Sn-1; (1)当n为奇数时,Sn中连续的1和0的数相同 ~Sn的末位和Sn的首位都是0, An+1=An+An+1; (2)当n为偶数时,Sn中连续的... 阅读全文
posted @ 2012-07-25 07:56 蚀 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 250pt题意: 有左,中,右三个位置,一个球占据其中的一个,移动球到相邻的位置称为一次移动,求n次移动后球最可能在哪个位置(相同则字典序最小)?分析:给力的250pt,还以为要用动态规划做,因为只有三个位置,可枚举。 0,移动次数为0肯定在原位置 1,球不在中间时,第一步肯定移到中间, 2,球中间时,剩余的移动数如果为偶数,肯定会回到中间,奇数的数,因为左右对称,左边50%,右边50%,字典序小,所以是左边View Code class BallAndHats { public: int getHat(string hats, int numSwaps... 阅读全文
posted @ 2012-07-23 08:04 蚀 阅读(264) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页