求NOIP2011复赛普及组题目详解 PASCAL
第一题注意负数,注意有可能出现-0(虽然我也不确定有没有);
第二题一个单词一个单词地读(用空格隔断),读一个比较一个;
第三题模拟,不断排序;(但我估计会超时)
第四题用分治,先寻找括号外的加号,没有的话就寻找括号外的乘号,把找到的那个地方的左右两边分别计算在合在一起。注意去括号,注意最后的递归边界。计算时住随时mod 10007(可以用数学的余数定律证明这样不会改变结果)。但着也不能过全,递归到十二万多层就崩溃了。不过至少可以过一半
noip第13届普及组初赛试题的一题不会,请高手指教
设n个元素的集合可以划分为F(n,m)个不同的由m个非空子集组成的集合。
考虑3个元素的集合,可划分为
① 1个子集的集合:{{1,2,3}}
② 2个子集的集合:{{1,2},{3}},{{1,3},{2}},{{2,3},{1}}
③ 3个子集的集合:{{1},{2},{3}}
∴F(3,1)=1;F(3,2)=3;F(3,3)=1;
如果要求F(4,2)该怎么办呢?
A.往①里添一个元素{4},得到{{1,2,3},{4}}
B.往②里的任意一个子集添一个4,得到
{{1,2,4},{3}},{{1,2},{3,4}},
{{1,3,4},{2}},{{1,3},{2,4}},
{{2,3,4},{1}},{{2,3},{1,4}}
∴F(4,2)=F(3,1)+2*F(3,2)=1+2*3=7
推广,得F(n,m)=F(n-1,m-1)+m*F(n-1,m)
第十六届noip普及组的答案 pascal语言 急求 今天回答的再加100分
我初赛78分哈,初赛算是挤进了......
一、
1-10 DAADADBDCB
11-20 DABBBAADCD
二、 1. {2-2-1-2-3-1-1-3-4-3-1-2-1-3-5-3-6}
2. 49种
三、1. 2_20_77_91("_"指一个空格,下同)
2. 99_101_111_
3. 120_112
4. (1) 1 (2)4
四、1. (1) tmp:=true
(2) p[j]
(3) p[r]:=i
(4)p[j]+p[k]
(5)1004
2. (1)num<=2
(2)go(LEFT_TO_RIHGT)
(3)pos[i]=LEFT
(4) time[i]+go(RIGHT_TO_LEFT)
(5)pos[i]:=LEFT
好不容易的......