第一题&无限剑制&
很简单的模拟题,求出这个西格玛就好,数据规模也不大
第二题&魔法阵&
也很简单,只是这题目给参加过2016NOIP的我着实吓了一跳。。#汗
简单说,也是模拟
两个数组,两个循环,改变方阵中的元素位置
第三题&倒水&
题目挺长的,唬人
然而仔细阅读整个题目就知道,其实是个模拟
数据规模不大,时间复杂度为O(3000*100)
根本是送分吧!!!
第四题&解码&
简单说,这是整套模拟中唯一有难度的
这道题其实就是把求组合数包装了而已
根据平时的学习,我们可以知道:
对于从m个元素中取出n个元素的组合,公式为:
m!/n!(m-n)!
然而如果直接套公式,你以为第四题只是考你公式的么?
太天真了!
数据规模:1<=n,m<=10,000
所以很明显,不能直接套。。。
于是在神奇的至高无上的题解老师的指导下,我们探讨出两种方法:
1、杨辉三角大法(好)#滑稽
可以观察出杨辉三角与组合数的关系:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
c(0,0)
c(1,0) c(1,1)
c(2,0) c(2,1) c(2,2)
c(3,0) c(3,1) c(3,2) c(3,3)
c(4,0) c(4,1) c(4,2) c(4,3) c(4,4)
杨辉大家都会做吧!
可是,嗯,还是数据规模,你开一个10000*10000的数组试试。。
所以要用滚动数组a[0..1][-1..10001]
或者倒推也行,递推功底起了作用。。
2、快速幂+简化公式
en。。。这个还没做出来
本文解析了四道模拟题:无限剑制、魔法阵、倒水及解码。前三题较为简单,通过模拟即可解决;第四题则涉及组合数学,提出了使用杨辉三角或快速幂加简化公式的方法。
506

被折叠的 条评论
为什么被折叠?



