답안 #222148

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
222148 2020-04-12T08:21:10 Z VEGAnn Akvizna (COCI19_akvizna) C++14
65 / 130
441 ms 640 KB
#include <bits/stdc++.h>
#define sz(x) ((int)x.size())
#define pii pair<int,int>
#define ft first
#define sd second
#define MP make_pair
#define all(x) x.begin(),x.end()
#define PB push_back
using namespace std;
typedef long long ll;
typedef long double ld;
const int N = 100100;
const ll OO = 1e18;
const ld E = 1e-9;
vector<int> vc;
ld f[2][N];
int n, k, tp;

void calc(int l, int r, int opl, int opr){
    if (l > r) return;

    int j = (l + r) >> 1, opt = -1;

    for (int pr = max(j, opl); pr <= opr; pr++){
        if (f[tp ^ 1][pr] < -E) continue;

        ld ad = f[tp ^ 1][pr] + 1.0 - ld(j) / ld(pr);

        if (f[tp][j] + E < ad) {
            f[tp][j] = ad;
            opt = pr;
        }
    }

    assert(opt > -1);

    calc(l, j - 1, opl, opt);
    calc(j + 1, r, opt, opr);
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);

//    freopen("in.txt","r",stdin);

    cin >> n >> k;

    assert(n <= 3000);

    for (int j = 0; j <= n; j++)
        f[0][j] = -1.0;

    f[0][n] = 0.0;

    for (int i = 1; i <= k; i++) {
        tp = (i & 1);

        for (int j = 0; j <= n; j++)
            f[tp][j] = -1.0;

        calc(0, n - 1, 0, n);
    }

    cout << fixed << setprecision(10) << f[k & 1][0];

    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 73 ms 384 KB Output is correct
2 Correct 286 ms 504 KB Output is correct
3 Correct 364 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 100 ms 384 KB Output is correct
2 Correct 257 ms 504 KB Output is correct
3 Correct 359 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 88 ms 384 KB Output is correct
2 Correct 181 ms 504 KB Output is correct
3 Correct 358 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 111 ms 384 KB Output is correct
2 Correct 235 ms 504 KB Output is correct
3 Correct 378 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 72 ms 384 KB Output is correct
2 Correct 228 ms 504 KB Output is correct
3 Correct 305 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 71 ms 384 KB Output is correct
2 Correct 321 ms 504 KB Output is correct
3 Correct 395 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 73 ms 384 KB Output is correct
2 Correct 299 ms 384 KB Output is correct
3 Correct 441 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 75 ms 384 KB Output is correct
2 Correct 235 ms 512 KB Output is correct
3 Correct 366 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 107 ms 384 KB Output is correct
2 Correct 249 ms 384 KB Output is correct
3 Correct 383 ms 632 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 6 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -