#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 143;
const long long LINF = 1e18 + 143;
namespace Main {
struct line {
  long double dy, dx;
  line() {}
  line(long double _m, long double _n) {
    dy = _m;
    dx = _n;
  }
  long double get(long double x) { return (dy * x + dx); }
};
int len;
line first[212422];
inline long double inter(line l1, line l2) {
  return (l2.dx - l1.dx) / (l1.dy - l2.dy);
}
inline int ok(line l1, line l2, line l3) {
  return inter(l1, l3) < inter(l1, l2);
}
inline void push(line temp) {
  while (len >= 2 && ok(first[len - 1], first[len], temp)) {
    len--;
  }
  first[++len] = temp;
}
inline long double query(long double x) {
  if (len == 0) {
    return LINF;
  }
  int left = 0, right = len;
  while (left + 1 < right) {
    if (x <
        inter(first[((left + right) >> 1)], first[((left + right) >> 1) + 1])) {
      right = ((left + right) >> 1);
    } else {
      left = ((left + right) >> 1);
    }
  }
  return first[right].get(x);
}
inline int next() {
  int x;
  cin >> x;
  return x;
}
int a[212422];
long double ans[212422], nf[212422], s[212422], p[212422], q[212422];
inline void run() {
  int n = next();
  int k = next();
  for (int i = 1; i <= n; i++) {
    a[i] = next();
  }
  for (int i = 1; i <= n; i++) {
    s[i] = s[i - 1] + a[i];
    p[i] = p[i - 1] + s[i] / double(a[i]);
    q[i] = q[i - 1] + 1.0 / double(a[i]);
  }
  ans[0] = 0;
  for (int i = 1; i <= n; i++) {
    ans[i] = LINF;
  }
  for (int x = 1; x <= k; x++) {
    len = 0;
    for (int i = 0; i <= n; i++) {
      nf[i] = query(q[i]) + p[i];
      if (nf[i] > LINF) {
        nf[i] = LINF;
      }
      long double aa = -s[i];
      long double bb = q[i] * s[i] - p[i] + ans[i];
      push(line(aa, bb));
    }
    for (int i = 0; i <= n; i++) {
      ans[i] = nf[i];
    }
  }
  printf("%.10f\n", double(ans[n]));
  cerr << "\n\nElapsed time is: " << clock() / CLOCKS_PER_SEC << "\n\n";
}
};  // namespace Main
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  Main::run();
  return 0;
}
