(多校第二场1001)HDU5734 Acperience

推个公式:

∑(W[i]+B[i]*a)^2=∑W[i]^2+n*a^2+2*a*∑B[i]W[i];

对于x=a,y=n*x^2+2*x*∑B[i]W[i];  是一元二次方程,所以min(∑W[i]^2+n*a^2+2*a*∑B[i]W[i])=∑W[i]^2-(∑B[i]W[i])^2/n,可得当∑B[i]W[i]取最大值时,∑(W[i]+B[i]*a)^2取最小值。

#include
#include
#include
#include
#include
#include
#include
#define LL long long

using namespace std;

int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int n;
		scanf("%d",&n);
		LL num1=0,num2=0;
		for(int i=0;i



你可能感兴趣的:(2016多校赛)