ACM周末总结—9月17日

        这两天的网络赛还是让我收获挺多的。

        周六的网络赛异常的艰难,第三题sum,S(n)表示n这个数按位拆开相加,比如S(123)=1+2+3=6,问S(k*x)%233=0给一个x求满足条件的k,这道题最让我长见识,居然存在通解,100000010000001.......一直往后到有23个1,因为题目限制x<=1000000,所以任意x称这个数拆开都是233的倍数,得知答案的我被其中的套路震惊了,果然还是自己的思维太受限制,缺乏锻炼。另外,一直在做的第二题coin,讲的是一枚硬币向上的概率是q/p,抛k次,求向上偶次情况所有概率相加。这题也就是求(1/(p^k))*∑C(2i)(k)*q^2i*(p-q)^k-2i,进而这个式子是一个二项展开式之和,f(x)=(a+bx)^n,求其偶数项之和,高中学的就是(f(1)+f(-1))/2。这道题没推出来听不该的。我看明白的暂时就这些。

        周末(今天)的比赛,难度好像没这么大,但成绩一步怎么满意,第八题就是超级水题,不值一提,另外还做出了第11题,就是输入x(输入保证是素数),判断该数是否是两整数的分别立方相减的差,假设两个整数是n,m,(n>m),n^3-m^3=(n-m)*(n^2+n*m+m^2),如果是素数,n-m必定等于1,由此知,两个数必定相邻,并且n^2+n*m+m^2就等于那个素数,而n^2+n*m+m^2在(0,+无穷)上时单增,因此用二分查找,找到最逼近输入的数的值,看是否输入的数在曲线上。另外,今天很可惜第一题没做出来,就是给一个圆经过的三点坐标,求第四个点是否在圆内,这个就是公式求,但是一直wa,看题解说要用java写,否则c++的精度不够。。。还有第三题,给几个字符串,找是否存在一个字符串,其他所有字符串都是它的子串,这题比赛时没怎么看,可惜了,就是先将所有串存起来,找到最长的,在一个一个进行查找。

       这几场比赛下来忽然感觉好像自己还有那么一丝丝开窍,还要再加把劲!!

你可能感兴趣的:(ACM周末总结—9月17日)