题解 P6160 【[Cnoi2020]向量】
Warriors_Cat · · 题解
题解 P6160 【[Cnoi2020]向量】
Solution:
呜呜呜一道高中题给一个初一蒟蒻做……
比赛结束后问了数学老师就做出来了emmm
这道题主要还是推式子。
我们可以得到这些东东:
因为
那,这个最小值怎么求呢?
那,我们就要分类讨论了。
#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-
}