摘要: 假设A中去掉的数在第k+1位,可以把A分成三部分,低位,k,和高位。A == a + b * 10^k + c * 10^(k+1)B == a + c * 10^kN == A + B == 2 * a + b * 10^k + c * 10^k * 11其中b是一位数,b * 10^k不会进位,用10^k除N取整就可以得到b + 11c,再用11除,商和余数就分别是c和b了。但是这里有个问题a是一个小于10^k的数没错,但是2a有可能产生进位,这样就污染了刚才求出来的b + 11c。但是没有关系,因为进位最多为1,也就是b可能实际上是b+1,b本来最大是9,那现在即使是10,也不会影响到除 阅读全文
posted @ 2011-04-12 20:11 奋斗青春 阅读(1715) 评论(1) 推荐(1) 编辑
摘要: 这两天看了下堆排序, 意思是理解了,不过还没找到用处。。。先练练打字吧。。堆排序(Heap Sort)只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。堆的定义如下:n个元素的序列{k1,k2,k3.....kn}当且仅当满足以下关系时,称之为堆。Ki <= K(2*i) && Ki <= K(2*i+1) 或者 Ki >= K(2*i) && Ki >= K(2*i+1)(i=1,2,...n/2)若将此序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二叉树,则堆的含义表明,完全二叉树中所有非终端结点的 阅读全文
posted @ 2011-04-12 20:08 奋斗青春 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 以前做过这道题目,不过当时是找的牛人推出来的公式,,昨天又重新做了下,自己也推出来一个公式 ^_^。。高数没能学好,一开始只是以为定积分一下就ok了呢。。没想到定积分是求两点和曲线和x轴所围成的面积,最后再减去一个梯形的面积就行了。。先根据所给的点求出a,b,c;代码:# include<stdio.h># include<math.h>int main(){ int t; double x1,y1,x0,y0,x2,y2,a,b,c,ans; scanf("%d",&t); while(t--) { scanf("%lf%lf%l 阅读全文
posted @ 2011-04-12 10:57 奋斗青春 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 这道题目搞的我晕死。。。昨天晚上就写好了代码,是推出来的,交了几次都是wa,最后也没发现有错误,今天上午又查了一下资料, 又写了一个代码,还是wa。。。最后很无奈的去和别人的代码对比,改了又改,马上改的就一摸一样的还是WA。。。。最后就把输入改成scanf(“%s”)了,(我原来用的gets()),神奇的AC了。。感觉很奇怪,对这道题而言,用scanf和gets都是一样的,为何gets就一直wa呢。。求解。。。这个是昨天晚上写的,,思路就是根据余数然后列出来很多个方程,最后化简就ok啦。。注释掉的部分就是错的地方。。。哪位大虾给解释下为什么呢?????# include<stdio.h& 阅读全文
posted @ 2011-04-12 10:44 奋斗青春 阅读(1777) 评论(0) 推荐(1) 编辑