======Codeforces Round #645 (Div. 2)====== =====A - Park Lighting===== ====题目大意==== 有一个$n \times m$的网格,可以在一条边上放一个灯照亮有这条边的两个或一个格子,问最少放几个可以全照亮 ====解题思路==== 如果$n \times m$是奇数就是除以2再加1,否则就是直接除以2。 =====B - Maria Breaks the Self-isolation===== ====题目大意==== 有一个人要邀请$n$个人来聚会,这$n$个人每个人有一个值$a_i$,代表这个人到达时,若除了她以外的人数少于$a_i$,则她就不会参加,问最多邀请几个人。 ====解题思路==== 对$a_i$排序,然后只要遇到$a_i <= i$的人就可以把前面的全邀请过来,统计一下即可,复杂度$O(n \log n)$。 =====C - Celex Update===== ====题目大意==== {{:2020-2021:teams:hotpot:cf1.png?400|}} 有一个这样的网格,问从$(x_1,y_1)$走到$(x_2,y_2)$能或多多少种不同的和,只能向下或向右走,走到一个格子就加上格子里的数。 ====解题思路==== 显然最小的情况是先都向右在都向下,然后最大是先都向下再向右,中间都能取到,我们发现可以每次从最小的路径中移动路径中的一个格子使路径变大1,一共有$(x_2-x_1) \times (y_2 - y_1)$的移动空间,所以答案就是这个值加1。 =====D - The Best Vacation===== ====题目大意==== 现在有一种神奇的日历,一年有$n$个月,每个月有$d_i$天,现在你能选$x$天,你希望这些天的权值加起来最大,每一天的权值等于它是这个月的第几天。 ====解题思路==== 首先我们能证明这$x$天一定会正好到某个月结束,因为如果向前移动一定会变小,而如果向前移动后这$x$天中的第一天移动到了一个月的末尾而且使答案变大,那么显然取这$x$天的末尾在那个末尾更优。所以我们枚举在哪个月的末尾即可,这个问题可以$O(n)$解决。 =====E - Are You Fired?===== ====题目大意==== 给出$n$个数,前$\lceil \frac{n}{2} \rceil$个数会给出,后$\lfloor \frac{n}{2} \rfloor$个数完全一样,问能否找到一个$k$使这$n$个数中任意的连续$k$个数之和都大于0,不能输出-1。 ====解题思路==== 比赛的时候没做出来,可以看郭佬的每日推荐 F不会