NOIP PJ 2016
15 15 15. 若某简单无向图有 16 16 16条边且每个点的入度均为 2 2 2,求该无向图的定点数。
答案: 16 16 16
分析: 考虑对于每条边,对总入度之和的贡献均为 2 2 2(一条边连接两个顶点),故各个点的总入度为 16 × 2 = 32 16×2=32 16×2=32。
由于每个点的入度均为 2 2 2,故有 32 2 = 16 \frac {32} 2=16 232=16条边。
16 16 16. 有八个一模一样的苹果,放到 3 3 3个一样的盘子中有多少种放法。
答案: 8 8 8。
分析: 有一下几种方法:
①0 1 6
②0 2 5
③0 3 4
④1 1 5
⑤1 2 4
⑥1 3 3
⑦2 2 3
⑧0 0 7
易漏: ⑥⑦⑧。
同时,通过组合数学也可以得到相同的答案。
- 周末小明和爸爸妈妈三个人一起想动手做三道菜。小明负责洗菜, 爸爸负责切菜, 妈妈负责炒菜。假设做每道菜的顺序都是: 先洗菜 10 分钟,然后切菜10分钟,最后炒菜10分钟。那么做一道菜需要30分钟。注意:两道不同的菜的相同步骤不可以同时进行。例如第一道菜和第二道的菜不能同时洗, 也不能同时切。那么做完三道菜的最短时间需要多少分钟?
答案: 50
分析: 经典的最优化策略问题。
考虑尽可能得不让人闲着。定义三个菜分别为 1 , 2 , 3 1,2,3 1,2,3,列出表格:
小明 | 爸爸 | 妈妈 | |
---|---|---|---|
1-10 | ① | ||
11-20 | ② | ① | |
21-30 | ③ | ② | ① |
31-40 | ③ | ② | |
41-50 | ③ |
故最少需要 50 50 50分钟。
21.
21.
21. 在一个
4
×
4
4×4
4×4的棋盘上选择两个不在同一列也不在同一行的两个鸽格子,有多少种选法?
答案: 72 72 72。
分析: 简单的乘法原理。
首先第一个格子有
4
×
4
=
16
4×4=16
4×4=16种放法。由于这两个鸽格子不在同一列也不在同一行,所以第二个格子有
(
4
−
1
)
×
(
4
−
1
)
=
9
(4-1)×(4-1)=9
(4−1)×(4−1)=9种选法。
注意,通过常识发现棋盘上任何两个格子都是相同的,所以答案还要除以 2 2 2,即 16 × 9 2 = 72 \frac {16×9} 2=72 216×9=72种选法。
22
22
22. 求:
①节点数为
2016
2016
2016的二叉树最少的叶子节点个数;
②节点数为
2016
2016
2016的二叉树最小高度。
答案: ①1 ②11
分析: 一道简单的构造题。
①考虑构造一条长度为
2016
2016
2016的链,其叶子节点个数为
1
1
1;
②考虑构造一个完全二叉树,其高度为
⌈
l
o
g
2
2016
⌉
=
11
\lceil log_2 2016 \rceil=11
⌈log22016⌉=11。
23 23 23. 阅读程序
答案:
6
,
1
,
3
6,1,3
6,1,3
分析: 挖了巨坑……本蒟蒻差点跳进去……
①看到
0
0
0的时候
c
o
u
n
t
count
count没有变化;
②输出的是逗号,而不是句号;
③
s
u
m
c
o
u
n
t
\frac {sum} {count}
countsum做的是向下取整的整除运算,因为
s
u
m
sum
sum与
c
o
u
n
t
count
count都是整型变量。
其他的模拟即可,并无难度。
27. 27. 27. 完善程序(快读+输出)
答案: 见分析
分析:
①显然是
c
i
n
.
g
e
t
(
)
cin.get()
cin.get(),表示把字符
c
c
c读入;前面已经有提示了。
②本蒟蒻这题错了QAQ( − 3 -3 −3)……这里,我们读入了第一个数字字符,需要用它来初始化 n u m num num。显然是 n u m = c − ′ 0 ′ num=c-'0' num=c−′0′,即 n u m num num刚开始为 c c c表示的数字;
③要求的是数字字符,故应该为c>=‘0’&&c<=‘9’。
④根据位值原理,这里应该填 n u m = ( n u m ∗ 10 ) + ( c − ′ 0 ′ ) num=(num*10)+(c-'0') num=(num∗10)+(c−′0′)。
⑤这里发现它是负数,故要转换成负数,即 n u m = − n u m num=-num num=−num。
24. 24. 24. 阅读程序(二分+贪心, 时间复杂度 O ( n l o g 2 n ) ) O(nlog_2n)) O(nlog2n))
答案: 见分析
分析: 作为压轴题,本题还是有一定难度的。
①本蒟蒻又双叒叕错了……贪心地,从第 n − n n + 1 n-nn+1 n−nn+1位学生开始拿自行车。之所以不从第 1 1 1位开始拿,是因为根据排序原则,此时第 1 1 1位的钱数一定比第 n − n n + 1 n-nn+1 n−nn+1位学生的少,对于同样数量同样加强的自行车,显然要贪心地让 n − n n + 1 n-nn+1 n−nn+1号学生先拿,而本蒟蒻却傻逼地填了匪夷所思的 1 1 1……注意提示了贪心判断。
②此时,如果某位学生自己的钱不够用了,就用公共的钱。即应填 M i < c j M_i<c_j Mi<cj;
③如果需要用的公共的钱不大于 A A A元,那么这种情况就可以,否则不可以。故应填 c o u n t ≤ A count≤A count≤A。
④此时,根据后面的 a n s = m i d ans=mid ans=mid可以知道, m i d mid mid的情况是可以的;故填 c h e c k ( m i d ) check(mid) check(mid),而不是 ! c h e c k ( m i d ) !check(mid) !check(mid);
⑤根据二分的写法以及上文 l = m i d + 1 l=mid+1 l=mid+1的对称提示,这里应填 r = m i d − 1 r=mid-1 r=mid−1。
本蒟蒻总分: 90.5
好菜啊……继续努力吧