Codeforces Round #713 (Div. 3)

A. Spy Detected !

题意:给你一个序列,这个序列里面只有一个元素和别的元素不同,求这个元素的位置。

直排序特判即可。

AC Code : Here


B. Almost Rectangle

题意:给你一个矩形,由两个 *,以及剩下的 . 组成。现在要你把这个图里的两个 . 变成 *,使得这些 * 能够成为一个矩形的四角。

直接横坐标纵坐标特判即可。

即,如果横纵坐标各不相同,那么直接 \((x,y),(x_0,y_0)\) 变成 \((x,y_0),(x_0,y)\)。
如果横坐标相同,特判一下 \(1\) 和 \(n\) 的情况,然后直接 往下移动一个即可。
如果纵坐标相同,也是特判一下 \(1\) 和 \(n\) 的情况。

AC Code : Here


C. A-B Palindrome

题意:给你一个由 01? 组成的串,那么现在这个目标串里面要有 \(a\) 个 0 和 \(b\) 个 1,求把 ? 填充之后的可能目标串。如果没有,输出 -1

毒瘤模拟题。

首先把可以确定的 01 给弄出来。
就是一个位置上是 0 或者 1,但是对应的相反位置上是 ?,那么就可以填充。

接着把已经确定的 \(a\) 和 \(b\) 减掉。

然后就是奇偶数的讨论了。

如果总长度是奇数,那么中间如果没有填,那么必定要填一个,这里填 \(a\) 和 \(b\) 里面是奇数的就可以了;否则就依次填掉。

偶数的更简单了。如果 \(a\) 和 \(b\) 为奇数那么直接无解,否则就依次填掉。

然后要注意一下细节,就是 \(a\) 和 \(b\) 在第一次处理完后,如果有 1 对应点为 0 的直接无解,如果 \(a<0\) 或者 \(b<0\) 也是。

AC Code : Here


D. Corrupted Array

题意: 给你一个序列,其中有 \(n\) 个数字是另一个数组中的,还有 \(1\) 个数字代表那个数组的元素和,还有 \(1\) 个数字啥用也没有。现在要你求那个数组,如果不存在,输出 -1

很容易想到和只可能是序列的倒数两个。

那么分情况讨论:

  • 和是序列的倒数第二个,那么直接检查之前的所有和即可
  • 和是序列的最后一个,那么枚举它之前不在另一个数组中的数,用和减掉检查即可

AC Code : Here


E. Permutation by Sum

题意:给你 \(n,l,r,s\) 表示一个 \(1\sim n\) 的排列中 \(\sum\limits_{i=l}^ra_i=s\)。求这个排列。
如果不存在,输出 -1.

很简单。只要先用最小的情况 \(\sum\limits_{i=1}^{r-l+1}i\) 去看 \(s\) 是否 \(\ge\) 它。然后直接赋值。同时要判断这个区间内的最多的可能值与 \(s\) 的大小关系。

接着就可以从 \(a_r\) 开始看,看它最大能够变成多少
如果不够了就直接加上就行了(

AC Code : Here


F. Education

题意:一个人呆在位置 \(i\) 上,每天可以收益 \(a_i\) 元,同时可以花费一天时间并且花费 \(b_i\) 到达位置 \(i+1\space(i<n)\)。
求最小的天数,使得这个人能够有 \(c\) 元。

很显然是个小清新贪心(沿用了我之前的说法

然后对于每一天肯定是花费最小的天数到达这里才是最好的对吧
然后再求出对于每一个位置,从前面一直积累的 TUG 还需要多少时间才能达到 \(c\)。

我在考场上因为 += \(→\) = 然后失去了 F
Codeforces Round #713 (Div. 3)Codeforces Round #713 (Div. 3)Codeforces Round #713 (Div. 3)

要注意的就是那里,以及 TUG 可能本身就达到了 \(b_i\),所以还要和 \(0\) 取 \(\max\)。

赛后 AC Code : Here


G. Short Task

题意:给定 \(n\),求最小的因数和等于 \(n\) 的数。如果不存在,输出 -1

直接暴力处理出每一个数的因数和即可。因为 \(i\) 正序枚举,所以第一次被枚举到的因数和的 ans 值肯定就是 \(i\)。

能够卡过 \(2s\) 时限!!!!11

赛后 AC Code : Here


总结

真的都挺容易想的,
然而不知道为什么最后的 F 和 G 就是调不出来!!11

要提高代码实现能力(
口胡能力太足了(((

上一篇:leetcode454-四数相加 II(中等难度)


下一篇:Codeforces Round #713 div.3 题解