題目連接node
按題目隨便假設找到了一個x,它的位置的ap,屬性bpc++
看下圖spa
$$$$$$$$$$$$$$$$|||||P &&&&&&&&&&&&&&&
$:ap前,即ai<ap
&:ap後,即ai>ap
|:ap同,即ai==apcode
顯然要求解下面的式子blog
sigma 1~n (ai-x)*bi
#include<bits/stdc++.h> using namespace std; #define N 100010 #define int unsigned long long int n; struct node{ int a,b; bool operator < (const node & x) const { return a<x.a; }; }sky[N]; int sum1[N],sum2[N]; main() { cin>>n; for(int i=1;i<=n;i++) scanf("%d",&sky[i].a); for(int i=1;i<=n;i++) scanf("%d",&sky[i].b); sort(sky+1,sky+1+n); for(int i=1;i<=n;i++) sum1[i]=sky[i].b+sum1[i-1],sum2[i]=sum2[i-1]+sky[i].a*sky[i].b; int ans=LLONG_MAX; for(int i=1;i<=n;i++) { int x=sky[i].a; int temp=0; temp=(sum1[i]-sum1[n]+sum1[i])*x; temp+=(sum2[n]-sum2[i]-sum2[i]); ans=min(ans,temp); } cout<<ans; return 0; }