解題思路:每乙個點的重量都相同,所以n個點的重心就在這n個點座標的平均數中,例如1,2,3的重心就在2。那麼移動k個點就直接移動到最終的重心上,他的d^2就不會有貢獻。只要列舉n-k個長度的子串,找出最小值就好了。公式展開裡面會有一次方項和和二次方項和,這裡做字首和就可以了。
wa了兩次,第一次沒有注釋printf,第二次沒有考慮n == k的情況
#include#include#include#define max 50010
#define ll __int64
using namespace std;
ll one[max], two[max], num[max];
int n, k;
double calc(int s, int e)
int main()
if(k == n)
sort(num + 1, num + n + 1);//記得排序,題目的資料不一定公升序
double min = -1;
for(i = 1; i <= n; i++)
double tem;
for(i = 1; i + n - k - 1 <= n; i++)
if(min > tem)
}printf("%.9lf\n", min);
}}
hdu5073 思維 方差 Galaxy
背景知識很強qwq 給定一些星星,你可以刪除k個,每乙個星星 s d d.d為每個星星距離質心的距離。問你如何使sigma s 最小。展開公式得 x1 zx x1 zx x2 zx x2 zx x1 x1 x2 x2 m k zx zx 2 sigma x zx 並且發現這個結果和 區間的方差呈正相...
hdu 2014鞍山賽區 5073 Galaxy
題意 就是給你 n 個數,代表n個星球的位置,每乙個星球的重量都為 1 開始的時候每乙個星球都繞著質心轉動,那麼質心的位置就是所有的星球的位置之和 星球的個數 現在讓你移動 k 個星球到任意位置 多個星球可以在同乙個位置並且所有的星球在同一直線上 移動之後那麼它們質心的位置就可能發生變化,求 i s...
hdu 1066 數學相關
詳細說明 include include include using namespace std char s 1005 int len,mp 25 直接計算出其迴圈節為20這裡將0 19的列表於上,當n 5時直接輸出,其餘需要遞迴n 5因為這個表是刪除了所有的5的倍數的 int slove ret...