您的位置:首页 > 其它

2016.09.10 初中部 NOIP普及组 模拟赛

2016-09-12 20:09 232 查看
总结

这次比赛感觉挺难滴。

考得不理想。

T1:一道纯粹的数学题,推理过程早就忘干净了,说公式吧。

ans=C(n+m,n)-C(n+m,n+1)=(n+1-m)*(m+n)!/(m!*(n+1)!)

化简后得:(n+1-m)*(n+2)*......*(n+m)/m!

大家肯定注意到了这里有一个除号,高精度除法我不会呀,咋办捏?

因为答案肯定是个整数,所以说是可以整除的,我们就把这里的每一项分解质因数,分别存到a和b数组里,然后抵消后把剩下的因数乘起来即可。分解质因数之前要用筛选法把1万内的素数全部筛出来(连筛选法都不会的**就用普通方法吧)。

T2:一道水题。

先用递归枚举出所有2^19以内的只包含1和0的数,然后每个除一遍,最后选小的那个数就可以了,但是因为考试时ans类型定小了所以就呵呵了。。。。

T3:一道非常非常非常非常非常非常非常非常非常非常坑爹的题。

这还是一道奇葩数学题(我学奥数那么久都没见过%&^%*&$) 比赛时看到题完全懵逼了,打了个表结果愉快的爆0。

正解就是ans=n!-r[1]*(n-1)!+r[2]*(n-2)!-r[3]*(n-3)!........+(-1)^m*(n-m)!

其中r[k]表示把k个雕像都放到池塘里且满足每行每列只有一个沉入水中的雕像的总方案数,至于这条公式是怎么推出来的嘛,去问刘神犇吧,这里不多说了。

接下来说说如何求r[k](这是整道题里最坑的部分) 

我用的第一种方法就是每行枚举一个,然后累加答案,结果错了,为什么捏?

原来题目的最后一个数据专门坑人的,3 6重复了两次,也就是说学校在3行6列这个地方建了个两层的池塘,每层都可以扔雕像,这样答案就算少了。应该枚举m个雕像,枚举每个雕像选不选,符不符合条件,最后再累加答案。

这里有个细节,如果n-i是个负数,那么(n-i)!就赋值为1。

至于分数嘛,不想说了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  普及组题解