SP8374 PARKET1 - PARKET 题解

Content

有一个 \(l\times w\) 大小的网格,其四周均被染成了红色,其余部分是棕色,已知红色网格与棕色网格的数量,求 \(l\)\(w\) 的值。

Solution

接下来给各位上演一波大 力 解 方 程。

我们设红色格子的个数是 \(r\),棕色格子的个数是 \(b\)。那么我们通过题目给出的图可以看出棕色格子所占的矩形长 \(l-2\),宽 \(w-2\)。那么可以得到等式 \((l-2)(w-2)=b\)

又由于我们知道网格只被涂成了红色和棕色,因此我们又得到了一个等式 \(lw=b+r\)

由此我们得到了一个方程组:

\[\begin{cases}(l-2)(w-2)=b&(1)\\lw=b+r&(2)\end{cases} \]

我们发现这个 \((1)\) 式不做变换的话不好进行后面的计算,因此我们考虑把 \((1)\) 式拆开:

\[\begin{aligned}lw-2l-2w+4&=b\\lw&=b+2(l+w)-4\end{aligned} \]

然后我们发现,\(lw\) 既可以表示成 \(b+r\),也可以表示成 \(b+2(l+w)-4\),因此我们又得到了一个等式:

\[\begin{aligned}b+2(l+w)-4&=b+r\\2(l+w)-4&=r\\2(l+w)&=r+4\\l+w&=\dfrac{r+4}2\end{aligned} \]

我们再一起看一下这两个等式:

\[\begin{cases}l+w=\dfrac{r+4}2\\lw=b+r\end{cases} \]

我们发现,这就是一个典型的韦达定理,即 \(x_1+x_2=-\dfrac ba\)\(x_1x_2=\dfrac ca\),于是我们不妨将 \(l,w\) 看作是一个一元二次方程的两个根,于是我们就可以得到这个一元二次方程 \(x^2-\dfrac{r+4}2+r+b=0\)

又由于题目告诉我们,\(l,w\) 保证有解,于是我们解这个方程,得:

\[x_1=\dfrac{\dfrac{r+4}2+\sqrt{\dfrac{(r+4)^2}4-4(r+b)}}{2}=\dfrac{r+4+\sqrt{(r+4)^2-16(r+b)}}{4} \]

\[x_2=\dfrac{\dfrac{r+4}2-\sqrt{\dfrac{(r+4)^2}4-4(r+b)}}{2}=\dfrac{r+4-\sqrt{(r+4)^2-16(r+b)}}{4} \]

又由于我们的 \(r,b\) 都是正整数,因此我们可以推出 \(x_1>x_2\),因此不需要再去比较交换什么的就可以直接输出。

Code

因为代码实在是太简单,就给各位自己写吧qwq。

posted @ 2021-12-15 21:41  Eason_AC  阅读(56)  评论(0)    收藏  举报