HDU 5734 Acperience
化简之后发现会是一个一元二次方程,对称轴大于0,所以把对称轴代入计算即可。
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<stack> #include<iostream> using namespace std; typedef long long LL; const int maxn=100000+10; int T,n; LL w[maxn]; LL gcd(LL a,LL b) { if(b==0) return a; return gcd(b,a%b); } int main() { scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lld",&w[i]); LL p=0,q=0; for(int i=1;i<=n;i++) p=p+n*w[i]*w[i]; LL sum=0; for(int i=1;i<=n;i++) sum=sum+abs(w[i]); p=p-sum*sum; q=(LL)n; if(p==0) printf("0/1\n"); else printf("%lld/%lld\n",p/gcd(p,q),q/gcd(p,q)); } return 0; }