07 2012 档案

摘要: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 阅读(248) 评论(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 阅读(386) 评论(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 阅读(277) 评论(0) 推荐(0)
摘要:题意: 给定四个可以等比例缩放(缩放后长宽比不变)的矩形,求在经过缩放后是否可以完全覆盖另一个矩形。分析:知道要深搜,不敢做。。 看了解题报告的两幅图后豁然开朗,分两种,还是没用深搜; 一种是填充式,另一种是分隔式 1:填充式,每次放矩形时,放大至最大; +------------+ |111111111111| |222233333333| |222233333333| |222233333333| |222244444444| |222244444444| +------------+ 2:分隔式,2*2,每个小矩形至少和另一个有有一条公共边 +---+--------+ | ... 阅读全文
posted @ 2012-07-20 08:43 阅读(324) 评论(0) 推荐(0)
摘要:250pt数学模型: 给定一个数组,求不同整数的种数*出现次数最多的数的次数。分析: 因为数字范围有限,暴力模拟即可View Code class KingdomAndDucks { public: int minDucks(vector <int> d) { int i,j,k,n=d.size(),a[55]={0}; for(i=0;i<n;i++) a[d[i]]++; for(i=k=j=0;i<55;i++) ... 阅读全文
posted @ 2012-07-05 10:38 阅读(176) 评论(0) 推荐(0)
摘要:250pt数学模型: 求顶角是120度的等腰三角形的面积分析: L*L*sqrt(3.0)/4.0, 计算的时候为了提高精度,先乘后除。View Code class MinimalTriangle { public: double maximalArea(int length) { double l=length,t=sqrt(3.0); return l*l*t/4.0; } }; 500pt数学模型:给定n组点,每组横坐标相同,第一组:(0,1),(0,2)........ 阅读全文
posted @ 2012-07-03 12:52 阅读(192) 评论(0) 推荐(0)