题意:已知一个n维向量,现在你找一个n维向量,向量每个元素都是a(a>=0),每个元素符号未知,求差向量长度的最小值。
题解:
可以直接展开为一元二次函数,公式最值求解
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<queue>
#define pr(x) cout<<#x<<" "<<x;
#define pl(x) cout<<#x<<" "<<x<<endl;
#include<math.h>
#include<algorithm>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
long long l;
cin>>l;
long long s[l+5];
long long sum = 0;
long long sum2 = 0;
for(int i=1;i<=l;i++){
cin>>s[i];
sum+=abs(s[i]);
sum2 +=s[i]*s[i];
}
long long p = __gcd(l*sum2 -sum*sum,l);
long long ans1 = (l*sum2 -sum*sum)/p;
long long ans2 = l/p;
cout<<ans1<<'/'<<ans2<<endl;
}
}