AC 5题,属实菜逼。
题意:
有$1 \sim n$共$n$个数,最开始拿走$a, b, a \ne b$,当数$j$能被拿走时,当且仅当$\exists x, y$满足$x, y$已经被拿走且$x + y = j$或$x - y = j$,判断能拿走的数的个数的奇偶性。
题解:
可以看出,能被拿走的数一定能用$x * a + y * b$表示,也就是说这个数一定是$gcd(a, b)$的倍数。
那么判断$n / gcd(a, b)$的奇偶性即可。
略,用python很好写。
题意:
一条直线上有$n, n \leq 10^3$个点,最开始张老师在点$x$。
第$i$个景点在位置$p_i$,必须在$t_i$之前到达才能打卡。
求张老师想要打卡所有景点的最短时间,无解输出-1。
题解:
张老师打卡过的景点一定是连续的一段,于是令$dp[i][j][0/1]$表示已经打卡区间$[i, j]$,$k = 0$表示此时在$i$,为1表示此时在$j$。
转移时考虑从$dp[i + 1][j][0/1], dp[i][j - 1][0/1]$过来即可,需要判断一下到当前点时能否打卡这个景点,不能则无解。
题意:
$w \times h$的广场上有若干目标点,障碍和最多4辆小车。
每次可以选择一辆小车让它往上、下、左、右4个方向一直走直到遇见障碍、边界、小车停下。
问操作$k, k \leq 5$次后,能否使得有一辆小车停在目标点。
题解:
暴力搜索即可。