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。

SP8374 PARKET1 - PARKET 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. springboot和mybatis集成

    springboot和mybatis集成 pom  <?xml version="1.0" encoding="UTF-8"?> <proje ...

  2. Ubuntu怎么修改DNS

    有时候会出现配置好网络之后,可以ping通网关却ping不通www.baidu.com orangepi@orangepi3:~$ ping 192.168.1.1 PING 192.168.1.1 ...

  3. FJD1T1

    在考场上因为一些原因,系统编译不了. 于是在最后\(1h\)把\(T3\)得重打一遍,所以这题的暴力没有写完. 不过也确实很蠢,没想到做法. 考虑搜索原串中的字母的对应取值,然后计算出结果的柿子. 考 ...

  4. Codeforces 1446D2 - Frequency Problem (Hard Version)(根分)

    Codeforces 题面传送门 & 洛谷题面传送门 人菜结论题做不动/kk 首先考虑此题一个非常关键的结论:我们设整个数列的众数为 \(G\),那么在最优子段中,\(G\) 一定是该子段的众 ...

  5. dlang 泛型

    1 import std.stdio, std.string; 2 3 void main() 4 { 5 bool find(T)(T[] all, T sub) 6 { 7 foreach(eac ...

  6. C语言小练习 微型学生管理系统

    很简陋,没有做输入校验,以写出来为第一目的,中间出了不少问题,尤其是结构体内字符串赋值的时候(理解不透彻),字符串比较用strcmp不能直接==判定,逻辑也很重要,不然会出现莫名其妙的问题. 涉及知识 ...

  7. Python基础之数字类型内置方法

    目录 1. 整型内置方法(int) 2. 浮点型内置方法 3. 常用操作 1. 整型内置方法(int) 用途:年龄,号码,等级等 定义: age = 18 常用操作 # 算数运算.比较运算 age = ...

  8. yum和apt-get的用法和区别

    一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debian.Ubuntu等 RedHat 系列 1 常见的安装包 ...

  9. Excel-统计各分数段人数 frequency()

    FREQUENCY函数 函数名称:FREQUENCY 主要功能:以一列垂直数组返回某个区域中数据的频率分布. 使用格式:FREQUENCY(data_array,bins_array) 参数说明:Da ...

  10. Python序列化,json&pickle&shelve模块

    1. 序列化说明 序列化可将非字符串的数据类型的数据进行存档,如字典.列表甚至是函数等等 反序列化,将通过序列化保存的文件内容反序列化即可得到数据原本的样子,可直接使用 2. Python中常用的序列 ...