2020年第十四届山东大学程序设计竞赛Part1(CDFL)

C.分栏

题意:

转化一下就是先读偶数位,再读奇数位(假设下标从0开始的)

思路:

直接模拟,签到好评。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43855679

L. 开学?

题意:

跟你说现在是周x,问n天后是周几。

思路:

签到题。注意取余后为0的情况,此时应当是7,特判一下就好了

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43855610

F. 爱买手办的张三

题意

已知某些数的或的结果是y,问最少的数的个数以及这些数和最多的数的个数以及这些数。

思路:

死活不让我vector过。

首先我们可以知道,最少的数一定就是它本身。

再来考虑一下最多的数的情况,根据或的性质,当同时为0时结果才是0,只要有一个是1结果就是1.

所以我们把y二进制拆分之后,是0的位数必须都是0,是1的位数可以是0也可以是1.

也就是说,从小于等于y的数里找,只要(i|y)==y就符合题意,存下答案最后输出即可。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43858915

D. 斐波那契数列?

题意:
$$
思路:

假设fib[i]=F[i]/2^i可以得出递推公式为fib[i]=fib[i-1] * 0.5+fib [i-2]* 0.25;

但是n是1e9的范围,直接遍历完n会爆炸,我们会发现,这个数会越乘越小,所以就可以当他足够小的时候直接跳出。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43889073