题意:给你一个序列,这个序列里面只有一个元素和别的元素不同,求这个元素的位置。
直排序特判即可。
AC Code : Here
题意:给你一个矩形,由两个 *
,以及剩下的 .
组成。现在要你把这个图里的两个 .
变成 *
,使得这些 *
能够成为一个矩形的四角。
直接横坐标纵坐标特判即可。
即,如果横纵坐标各不相同,那么直接 \((x,y),(x_0,y_0)\) 变成 \((x,y_0),(x_0,y)\)。
如果横坐标相同,特判一下 \(1\) 和 \(n\) 的情况,然后直接 往下移动一个即可。
如果纵坐标相同,也是特判一下 \(1\) 和 \(n\) 的情况。
AC Code : Here
题意:给你一个由 0
,1
,?
组成的串,那么现在这个目标串里面要有 \(a\) 个 0
和 \(b\) 个 1
,求把 ?
填充之后的可能目标串。如果没有,输出 -1
。
毒瘤模拟题。
首先把可以确定的 0
和 1
给弄出来。
就是一个位置上是 0
或者 1
,但是对应的相反位置上是 ?
,那么就可以填充。
接着把已经确定的 \(a\) 和 \(b\) 减掉。
然后就是奇偶数的讨论了。
如果总长度是奇数,那么中间如果没有填,那么必定要填一个,这里填 \(a\) 和 \(b\) 里面是奇数的就可以了;否则就依次填掉。
偶数的更简单了。如果 \(a\) 和 \(b\) 为奇数那么直接无解,否则就依次填掉。
然后要注意一下细节,就是 \(a\) 和 \(b\) 在第一次处理完后,如果有 1
对应点为 0
的直接无解,如果 \(a<0\) 或者 \(b<0\) 也是。
AC Code : Here
题意: 给你一个序列,其中有 \(n\) 个数字是另一个数组中的,还有 \(1\) 个数字代表那个数组的元素和,还有 \(1\) 个数字啥用也没有。现在要你求那个数组,如果不存在,输出 -1
。
很容易想到和只可能是序列的倒数两个。
那么分情况讨论:
- 和是序列的倒数第二个,那么直接检查之前的所有和即可
- 和是序列的最后一个,那么枚举它之前不在另一个数组中的数,用和减掉检查即可
AC Code : Here
题意:给你 \(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
要注意的就是那里,以及 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
要提高代码实现能力(
口胡能力太足了(((