[NOIP 2001 提高组] 一元三次方程求解

Luogu
IDLGP1024
Time1000ms
Memory125MB
DifficultyP2
数学2001二分NOIP 提高组枚举分治
有形如:$a x^3 + b x^2 + c x + d = 0$ 这样的一个一元三次方程。给出该方程中各项的系数($a,b,c,d$ 均为实数),并约定该方程存在三个不同实根(根的范围在 $-100$ 至 $100$ 之间),且根与根之差的绝对值 $\ge 1$。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后 $2$ 位。 提示:记方程 $f(x) = 0$,若存在 $2$ 个数 $x_1$ 和 $x_2$,且 $x_1 < x_2$,$f(x_1) \times f(x_2) < 0$,则在 $(x_1, x_2)$ 之间一定有一个根。 ## Input 一行,$4$ 个实数 $a, b, c, d$。 ## Output 一行,$3$ 个实根,从小到大输出,并精确到小数点后 $2$ 位。 [samples] ## Note **【题目来源】** NOIP 2001 提高组第一题
Samples
Input #1
1 -5 -4 20
Output #1
-2.00 2.00 5.00
API Response (JSON)
{
  "problem": {
    "name": "[NOIP 2001 提高组] 一元三次方程求解",
    "description": {
      "content": "有形如:$a x^3 + b x^2 + c x + d = 0$  这样的一个一元三次方程。给出该方程中各项的系数($a,b,c,d$ 均为实数),并约定该方程存在三个不同实根(根的范围在 $-100$ 至 $100$ 之间),且根与根之差的绝对值 $\\ge 1$。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后 $2$ 位。 提示:记方程 $f(x) = 0$,",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 128000
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP1024"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "有形如:$a x^3 + b x^2 + c x + d = 0$  这样的一个一元三次方程。给出该方程中各项的系数($a,b,c,d$ 均为实数),并约定该方程存在三个不同实根(根的范围在 $-100$ 至 $100$ 之间),且根与根之差的绝对值 $\\ge 1$。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后 $2$ 位。\n\n提示:记方程 $f(x) = 0$,...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments