题目 | 类型 | 难度 |
---|---|---|
Color | 统计,容斥 | ★ |
Set | 数学 | ★★ |
Robot | 数学 | ★★ |
Matrix | 数学 | ★★★ |
Exam Schedule | 模拟 | ★★★★ |
本来是6个题,因为当时时间太赶了,最难的那个没时间出数据,又觉得重考也觉得没必要,就这样了。
实际考试的时候,拿了一个之前的题目凑成了6个题,所以题解还是只给5道题。
Color
题意
题目是CF的原题。一个$m\times n$的格子,中间有$k$个黑格子,一次可以让不含黑格子的某一行或者某一列变成红色。问最多可以让多少格变红。
思路
统计不含黑格的行数$row$和列数$col$,答案就是$row\times n + col \times m - row \times col$
标程
1 |
|
Set
题意
题目来源于是CF,但是有加强。
给一个整数的集合,执行两步操作:先对某些数加上x,再在对某些数减去y,使得集合内的数都是一样的。
问你给定的集合是否可以做到。
思路
一个数$n$,经过操作可能得到的数为$\{n,n+x,n+x-y,n-y\}$。
如果集合内数的种类为$k$,显然$k<4$时,一定可以做到;$k>4$时,一定做不到。
当$k=4$时,不妨设四种数从小到大依次为$a,b,c,d$,显然,只能全部变成$b$或者$c$。
不妨设全部变成$b$,那么4$时,一定可以做到;$k>
$(1)-(2)+(3)$,化简一下可以得到等式$a+d=b+c$。
标程
1 |
|
Robot
题意
一个机器人的指令集,包含上下左右四种指令,每个指令表示往对应方向移动一步。
机器人一开始站在原点,如果将其中一种指令全部替换成另外一种,请问机器人是否在执行完指令序列后,回到原点。
思路
显然替换完之后的指令序列如果要使得机器人回到原点,那么必然$L=R,U=D$。
由于替换的关系,那么必然是一种指令的数量为$0$,而其他的指令满足$x+y=z$的形式。
标程
1 |
|
Matrix
题意
求按
规律安排矩阵的第1列的累加和。
思路
典型的找规律的题目。很容易发现奇数元素是$\lceil n / 2 \rceil ^ 2 + 1 $,偶数元素是 $n^2$。因为$n$最大有$10^9$,所以暴力和打表都是不可做的。
如果$n=2k+1$,那么$S(n) = \sum_{i=0}^k{\big((2i)^2+1+(2i)^2\big)} = 8 \sum_{i=0}^k{i^2} + k + 1 = \frac{4}{3}k(k+1)(2k+1)+k+1$。
如果$n=2k$,那么$S(n) = S(n+1) - n^2 - 1$。
因为要取模,所以要么就根据$k$的值先把$3$除掉,或者乘以$3$对于$10^9+7$的逆元(这个很容易计算得到为$333333336$)。
标程
1 |
|
Exam Schedule
题意
周1到周5排考,每天是11节课,某些时间段已经被占用,求所有能安排的时间段。
思路
典型模拟题。
先用数组记录(当然也可以用位运算)所有已经占用的时间段。
对于不同的时长要求的考试,预存下所有的检测时间段。
枚举每天,检测对应时间段是否可以安排考试,可以就记录下结果。
最后输出结果即可。
标程
1 |
|