题解:P3208 [HNOI2010]矩阵

这道题不难发现是一道搜索题 + 找规律题。 首先根据题意,可以发现若矩阵第一行与第一列被确定,那么整个矩阵中的元素也就能被一一确定。所以每个元素很可能可以根据第一行与第一列上的元素推导出来。需要注意的一点就是 $a[1][1]$ 这个元素,因为它是行...

Solution

题解:UVA10183 How Many Fibs?

对于一个 C++ 选手,一看数据范围就知道要用高精度来写。 先来考虑一个弱化版 满足 $a,b \le 10^8$。 因为要求出两数之间的斐波那契数的个数,所以我们可以预处理出 $10^8$ 以内的斐波那契数。 12f[1] = 1,f[2] = ...

Solution

题解:CF385B Bear and Strings

这道题需要求字符串的子串中包含 bear 的个数。 最简单的算法是枚举子串的起始位置与结束位置,如果包含 bear,就将答案的数量 $+1$。但是分析复杂度可知,两层循环加上字符串的截取与查找,是无法通过总长度 $s = 5000$ 的,因此我们就要...

Solution

题解:CF392B Tower of Hanoi

不妨设 $dp[i][j][k]$ 表示 $i$ 个圆盘从第 $j$ 杆移动到第 $k$ 杆的最小花费。现在要求 $n$ 个在第 $1$ 杆的圆盘移动到第 $3$ 杆上,因此最终的答案就是 $dp[n][1][3]$。 根据一般汉诺塔的移动方法,想要...

Solution

题解:P5962 [BOI2004]ships 船

这道题目让我们从大到小输出连通块的大小及其对应的个数。 首先最容易想到的是开个二维数组,然后就是很裸的搜索题目。但是一看 $n$ 的数据范围是 $1 \le n \le 3 \times 10 ^ 4$,所以 $n$ 较大是肯定会 $\texttt{...

Solution

题解:P6686 混凝土数学

可以看得出来这是一道组合数求解问题。 $30pts$直接暴力枚举三条边的长度,复杂度为 $Θ(n^3)$。 $50pts$当所有长度全部相等时,等腰三角形的个数为 $\dbinom{n}{3}$,直接特判输出;其余情况仍然暴力枚举。 $80pts$题...

Solution

题解:P6685 可持久化动态仙人掌的直径问题

题意: 求 $1 \le x \le \sqrt[m]{n}$,正整数解 $x$ 的个数。 方法一:利用 cmath 函数库应该可以 $Θ(1)$ 解决掉此题。 方法二:快速幂 $+$ 枚举。 方法三:现在考虑用二分来做,$l = 1,r = ...

Solution

题解:SP7259 LITE - Light Switching

读完题目应该就能发现是一道线段树的板子题目。 这道题目共有两个操作: 在一段区间内,把所有开的灯关了,再把关的灯打开。 在一段区间内,求开的灯的个数 对于第一个操作,也就是 $0 \to 1,1 \to0$,是不是很容易想到 ^。我们可以开两个数...

Solution

题解:SP15965 ENIGMATH - PLAY WITH MATH

简单推一下这个式子! $A \times x - B \times y = 0$;移项得 $A \times x = B \times y$;已知项为 $A,B$,我们把未知项移动到一边,则有:$\frac{x}{y} = \frac{B}{...

Solution

题解:P3139 [USACO16FEB]Milk Pails S

题外话:他有三个桶 是不是应该改成 两个桶 啊 emmm。 方法: 用 $\texttt{BFS}$ 进行搜索枚举。把三个操作分别转成数学语言即可。 接下来为了表示统一,把当前的两个桶中的牛奶设为 $(m,n)$,则应有 $0 \le m \l...

Solution
11213141516