Submission #50750315
Source Code Expand
#include <bits/stdc++.h> #ifdef LOCAL #include "debug.h" #else #define debug(...) #endif using int64 = long long; using uint = unsigned int; using uint64 = unsigned long long; bool ckmin(auto& a, auto b) { return b < a ? a = b, 1 : 0; } bool ckmax(auto& a, auto b) { return b > a ? a = b, 1 : 0; } using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, L, D; cin >> N >> L >> D; int mm = max(N, L + D) + 1; vector<double> py(mm), sum_py(mm); py[0] = 1; sum_py[0] = 1; for (int i = 1; i < mm; i++) { int l = max(0, i - D); int r = min(L - 1, i - 1); if (l <= r) { double t = sum_py[r] - (l == 0 ? 0 : sum_py[l - 1]); py[i] = t / D; } sum_py[i] = sum_py[i - 1] + py[i]; } // debug(py); // debug(sum_py); vector<double> f(mm), g(mm), dp(mm), sum_dp(mm); for (int i = mm - 1; i >= 0; i--) { int l = min(mm - 1, i + 1); int r = min(mm - 1, i + D); double t = sum_dp[l] - (r == mm - 1 ? 0 : sum_dp[r + 1]); f[i] = t / D; g[i] = 0; l = N + 1, r = mm - 1; if (l <= r) { t = sum_py[r] - (l == 0 ? 0 : sum_py[l - 1]); g[i] += t; } l = L, r = i - 1; if (l <= r) { t = sum_py[r] - (l == 0 ? 0 : sum_py[l - 1]); g[i] += t; } dp[i] = max(f[i], g[i]); if (i > N) dp[i] = 0; // debug(i, f[i], g[i]); sum_dp[i] = dp[i]; if (i < mm - 1) sum_dp[i] += sum_dp[i + 1]; } cout << fixed << setprecision(10) << dp[0] << '\n'; return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Black Jack |
User | xindubawukong |
Language | C++ 20 (gcc 12.2) |
Score | 550 |
Code Size | 1572 Byte |
Status | AC |
Exec Time | 13 ms |
Memory | 21880 KiB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 550 / 550 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_01.txt, 00_sample_02.txt |
All | 00_sample_01.txt, 00_sample_02.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_01.txt | AC | 1 ms | 3748 KiB |
00_sample_02.txt | AC | 13 ms | 21796 KiB |
01_test_01.txt | AC | 8 ms | 12604 KiB |
01_test_02.txt | AC | 9 ms | 12540 KiB |
01_test_03.txt | AC | 7 ms | 12600 KiB |
01_test_04.txt | AC | 1 ms | 3832 KiB |
01_test_05.txt | AC | 3 ms | 5892 KiB |
01_test_06.txt | AC | 6 ms | 11576 KiB |
01_test_07.txt | AC | 5 ms | 9520 KiB |
01_test_08.txt | AC | 3 ms | 5520 KiB |
01_test_09.txt | AC | 7 ms | 11576 KiB |
01_test_10.txt | AC | 7 ms | 12032 KiB |
01_test_11.txt | AC | 11 ms | 17336 KiB |
01_test_12.txt | AC | 9 ms | 13392 KiB |
01_test_13.txt | AC | 9 ms | 13860 KiB |
01_test_14.txt | AC | 13 ms | 21272 KiB |
01_test_15.txt | AC | 10 ms | 15492 KiB |
01_test_16.txt | AC | 7 ms | 12492 KiB |
01_test_17.txt | AC | 13 ms | 21880 KiB |
01_test_18.txt | AC | 10 ms | 16792 KiB |
01_test_19.txt | AC | 8 ms | 13704 KiB |
01_test_20.txt | AC | 12 ms | 20744 KiB |