摘要:
## 思路 假设 $a_i$ 和 $b_i$ 的最大值是 $maxn$。 可以发现序列 $1,2,3 \cdots maxn$ 一定是要构造的序列的子序列。 那么,这种情况下,一定满足了所有的 $a_ib_i$ 就可以了。 对于所有的 $a_i>b_i$,我们有两种选择,到了 $a_i$ 后,序列往 阅读全文
摘要:
## 思路 我们需要尽量让相邻两个数的和的最大值减最小值最小。 先思考如何让最大值最小。 对于 $n$,两侧最小也必须要放 $1$ 和 $2$。所以最大值至少也是 $n+2$。 同时,我们再思考 $1$ 周围能摆什么,因为不能让最小值太小,我们需要放比较大的,也就是 $n$ 和 $n-1$。 这样来 阅读全文
摘要:
## 思路 ### Step1.暴力 考虑到数据范围很小,所以可以暴力模拟操作,赛时直接去想更优的情况,倒是没去想模拟,所以这里就不展开了。 ### Step2.有点思维难度的做法 首先发现在过程中,只有乘以 $2$ 和除以 $2$ 的操作,所以向上取整的情况只会出现在细胞数量为 $1$ 的情况。 阅读全文
摘要:
AC 后逛了逛题解,发现好像自己的代码比大佬都短很多? ## 思路 数据范围很小,先暴力求得 ```X```,```0```,```.``` 的个数,然后暴力求得连着的三个 ```X```,```0``` 的个数。 然后,我们来分类讨论: - 非法的情况一定优先判断,只有不非法才可能是其他情况,那么 阅读全文
摘要:
## 思路 对于一个数组,每次操作会缩短排序后的数组的相邻两个数的差距,所以总共会执行 $k$ 次操作,其中,$k$ 为排序后的数组的相邻两个数的最大差距。 因为每次操作都会对最大数加 $1$,所以答案就是 $\text{数组中的最大数} + \text{排序后的数组的相邻两个数的最大差距}$。 因 阅读全文
摘要:
## 思路 因为对于 $\gcd(a,b)$,$\frac a{\gcd(a,b)}$,$\frac b{\gcd(a,b)}$ 中 $a$ 和 $b$ 是等价的,可以交换的。所以我们先令 $a>b$。 令 $\gcd(a,b)=d$,因为 $\frac a{\gcd(a,b)}$ 有除法,所以我们 阅读全文
摘要:
## 思路 首先特判特殊情况,若 $p_i$ 本身不可被 $q_i$ 整除,那么 $x_i$ 就直接取 $p_i$ 最大。 否则的话,$p_i=q_i\times k$。所以 $q$ 的质因数,$p$ 都有,并且数量一定大于等于 $q$ 的这个质因数的数量。 那么如果 $x_i$ 的某个质因数个数小 阅读全文
摘要:
## 思路 我们可以思考一下什么样子的合数是强合数。 首先一个数可以表示为 $p_1^{c_1}\times p_2^{c_2}\times \cdots \times p_x^{c_x}$。 那么这个数的约数个数为 $s=(c_1+1)\times (c_2+1)\times \cdots \ti 阅读全文
摘要:
## 思路 假设总共耗时是 $s$ 秒,那么最多可以消灭的总生命值是 $s\times(w+f)$。 所以我们可以先求出所有怪物的生命值之和 $sum$,那么,至少需要时间 $t=\lfloor \frac{sum}{w+f} \rfloor$。 然后我们可以算出用这些时间最多可以用水魔法消灭的生命 阅读全文