提出 #50637204
ソースコード 拡げる
#include <bits/stdc++.h>
#include <atcoder/modint>
#include <atcoder/segtree>
using Num = int;
using Numeric = double;
Numeric apply(Numeric a, Numeric b) {
return a + b;
}
Numeric unit() {
return 0;
}
void solve(std::istream& is, std::ostream& os) {
Num n, l, d;
is >> n >> l >> d;
using SegTree = atcoder::segtree<double, std::plus<>{}, [] { return 0; }>;
const Num size = n + 1;
SegTree tree_dealer(size);
tree_dealer.set(0, 1.0);
for(Num i{1}; i<=n; ++i) {
Num left = std::max(0, i-d);
Num right = std::min(i, l);
if (left < right) {
const auto p = tree_dealer.prod(left, right) / d;
tree_dealer.set(i, p);
}
}
std::vector<Numeric> win_player(size);
for(Num i{0}; i<=n; ++i) {
win_player.at(i) = 1.0 - tree_dealer.prod(std::max(i, l), size);
}
std::vector<Numeric> cumsum {0.0};
for(Num i{0}; i<=n; ++i) {
const auto hit = (cumsum.back() - cumsum.at(std::max(i-d, 0))) / d;
const auto stand = win_player.at(n-i);
const auto p = cumsum.back() + std::max(hit, stand);
cumsum.push_back(p);
}
os << std::setprecision(20) << (cumsum.back() - cumsum.at(cumsum.size() - 2)) << "\n";
}
int main(void) {
solve(std::cin, std::cout);
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Black Jack |
| ユーザ | zettsut |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 550 |
| コード長 | 1374 Byte |
| 結果 | AC |
| 実行時間 | 28 ms |
| メモリ | 12584 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 550 / 550 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_01.txt | AC | 4 ms | 3724 KiB |
| 00_sample_02.txt | AC | 25 ms | 12436 KiB |
| 01_test_01.txt | AC | 14 ms | 12364 KiB |
| 01_test_02.txt | AC | 14 ms | 12368 KiB |
| 01_test_03.txt | AC | 13 ms | 7716 KiB |
| 01_test_04.txt | AC | 1 ms | 3748 KiB |
| 01_test_05.txt | AC | 9 ms | 5584 KiB |
| 01_test_06.txt | AC | 23 ms | 12096 KiB |
| 01_test_07.txt | AC | 18 ms | 11304 KiB |
| 01_test_08.txt | AC | 7 ms | 5548 KiB |
| 01_test_09.txt | AC | 24 ms | 11960 KiB |
| 01_test_10.txt | AC | 15 ms | 8180 KiB |
| 01_test_11.txt | AC | 26 ms | 12416 KiB |
| 01_test_12.txt | AC | 25 ms | 12344 KiB |
| 01_test_13.txt | AC | 25 ms | 12356 KiB |
| 01_test_14.txt | AC | 26 ms | 12408 KiB |
| 01_test_15.txt | AC | 26 ms | 12424 KiB |
| 01_test_16.txt | AC | 25 ms | 12348 KiB |
| 01_test_17.txt | AC | 24 ms | 12352 KiB |
| 01_test_18.txt | AC | 28 ms | 12324 KiB |
| 01_test_19.txt | AC | 28 ms | 12492 KiB |
| 01_test_20.txt | AC | 28 ms | 12584 KiB |