CodeForces - 76E Points
生活随笔
收集整理的這篇文章主要介紹了
CodeForces - 76E Points
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CodeForces - 76E Points
題意:
給你n個點的坐標,求所有一對點之間的距離的平方和
n<=100000
題解:
直接暴力n2肯定不行,我們把這個的式子列出來:
代碼:
#include<bits/stdc++.h> #define debug(a,b) printf("%s = %d\n",a,b); typedef long long ll; using namespace std;inline int read(){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);return s*w; } const int maxn=1e5+9; struct node{ll x,y; }a[maxn]; ll dis(ll x,ll y,ll a,ll b){return (x-a)*(x-a)+(y-b)*(y-b); } int sum1[maxn],sum2[maxn]; int main() {int n;cin>>n;ll sum=0;for(int i=1;i<=n;i++){cin>>a[i].x>>a[i].y;sum1[i]=sum1[i-1]+a[i].x;sum2[i]=sum2[i-1]+a[i].y;}for(int i=1;i<=n;i++){sum+=(n-1)*a[i].x*a[i].x-2*a[i].x*(sum1[n]-sum1[i]);sum+=(n-1)*a[i].y*a[i].y-2*a[i].y*(sum2[n]-sum2[i]);}cout<<sum<<endl;}總結
以上是生活随笔為你收集整理的CodeForces - 76E Points的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是LEEP刀手术
- 下一篇: 钙离子在人体中的作用