1 条题解
-
0
自动搬运
来自洛谷,原作者为

Warriors_Cat
欢迎来到这方净土,这里曾有一位普通人建造着自己的乌托邦。搬运于
2025-08-24 22:18:02,当前版本为作者最后更新于2020-03-02 12:11:51,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题解 P6160 【[Cnoi2020]向量】
呜呜呜一道高中题给一个初一蒟蒻做……比赛结束后问了数学老师就做出来了emmm这道题主要还是推式子。
我们可以得到这些东东:
$$=\frac{1}{2}(|\vec a+\vec b+\vec c|^2-|\vec a|^2-|\vec b|^2-|\vec c|^2) $$$$=\frac{1}{2}(|\vec a+\vec b+\vec c|^2-r_1^2-r_2^2-r_3^2) $$因为 均为定值,所以我们只要考虑 的最小值就可以了QWQ。
那,这个最小值怎么求呢?
那,我们就要分类讨论了。
,那么 就可以围成一个类似于三角形的东东,根据平行四边形法则可以得到 。由于有平方,所以这个肯定是最小值。
,那么为了让最后答案最小,我们只好让 ,这是这种情况最小的答案。
然后这道题就做出来啦0^_^0。
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; long double ans, a, b, c; int main(){ scanf("%Lf%Lf%Lf", &a, &b, &c); if(a > b) swap(a, b); if(a > c) swap(a, c); if(b > c) swap(b, c);//从小到大排序一下。 ans = (max(c - a - b, (long double)0) * max(c - a - b, (long double)0) - c * c - a * a - b * b) / 2.0;//只是简化一下而已 printf("%0.1Lf", ans); return 0;//完结撒花-v- }End
- 1
信息
- ID
- 4909
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者