题目地址: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3791题目描述: 给定两个长度为n的01串s1,s2,要求用k步,每一步反转s1的m个位置的数码(即0变为1,1变为0),问能有多少种做法,在k步之后将s1变成s....
分类:
其他好文 时间:
2014-07-22 22:53:54
阅读次数:
193
思路基本上就是组合计数,唯一特别需要注意的是在计算组合数的时候很容易越界,虽然上面分析了计算结果在int范围内是没有问题的,但是计算组合数中间过程还是很可能越界,所以这里要特别注意。解决方法是利用C(n,m)=C(n-1,m-1)+C(n-1,m)进行递归计算,而不是使用传统的乘法计算方式。为了更有效率一点,可以事先计算好n=1~32,m=1~32的组合数的结果然后存起来。...
分类:
其他好文 时间:
2014-06-29 22:30:04
阅读次数:
314
一,反演理论的初识以一个方程组的例子来引出主题:a*x+b*y=p,c*x+d*y=q.在已知a,b,c,d,p,q的前提下我们如何来求出x和y呢?在计算机解决这类问题的一个最基本方法就是高斯消元法。像这样通过已知的结果来求未知数的方法就叫做反演。用数学语言来说:为得到某个组合计数问题的解,我们首先...
分类:
其他好文 时间:
2014-05-13 10:04:15
阅读次数:
318