QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#411248#6749. TargetKunoSayoAC ✓0ms3964kbC++232.4kb2024-05-15 10:34:082024-05-15 10:34:09

Judging History

你现在查看的是最新测评结果

  • [2024-05-15 10:34:09]
  • 评测
  • 测评结果:AC
  • 用时:0ms
  • 内存:3964kb
  • [2024-05-15 10:34:08]
  • 提交

answer

#pragma clang diagnostic push
#pragma ide diagnostic ignored "OCUnusedTypeAliasInspection"
#pragma ide diagnostic ignored "OCUnusedGlobalDeclarationInspection"

typedef unsigned long long ull;
typedef long long ll;

#include <iostream>
#include <vector>
#include <string>
#include <queue>
#include <algorithm>
#include <numeric>
#include <set>
#include <map>

using namespace std;

template<typename T, typename U>
T check_read(T left, U right) {
    T val;
    if (cin >> val) {
        if (val < left || val > right) {
            throw "??";
        }
        return val;
    }
    throw "?";
}

const int MAXN = 1e5 + 9;

ull mod = 998244353;

ull fpow(ull x, ull n) {
    ull ret = 1;
    while (n) {
        if (n & 1) ret = ret * x % mod;
        n >>= 1;
        x = x * x % mod;
    }
    return ret;
}

int b[10];

map<vector<char>, ull> dp;
int n;
ull divcache[12];

ull dfs(vector<char> &cur) {

    // E(..) = 1 + (1/n) E(..-1, ..)  +
    //        + (nz / n) E(..)
    // (n-nz/n) E(..) = 1 + ..
    //  E(..) = n / (n - nz) (before)
    auto it = dp.find(cur);
    if (it != dp.end()) {
        return it->second;
    }
    ull ret = 1;

    ull nz = 0;
    for (int i = 0; i < n; ++i) {
        if (cur[i] > 0) {
            --cur[i];
            ull result = dfs(cur);

            ret += result * divcache[n];
            ret %= mod;

            ++cur[i];
        } else if (cur[i] == 0) {
            ++nz;
        }
    }
    if (nz) {
        ret *= n;
        ret %= mod;
        ret *= divcache[n - nz];
        ret %= mod;
    }
    dp[cur] = ret;
    return ret;
}

void solve() {
    double u;
    double d = 0.975;
    cin >> u >> d;
    if (d == 1.0) {
        d -= 1e-9;
    }
    if (d == 0.0) {
        d += 1e-9;
    }
    ull data = *(ull *) &d;
    int exp = 0;
    for (int i = 62; i >= 52; --i) {
        exp = (exp << 1) | ((data >> i) & 1);
    }
    exp -= 1023;
    ++exp;
    int after_ans = 1 - exp;
    for (int i = after_ans + 2; i <= 51; ++i) {
        cout << (1 + ((data >> i) & 1));
    }
    cout << 2;
    for (int i = exp; i < 0; ++i) {
        cout << 1;
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    cout << fixed;
    cout.precision(18);


    int T = 1;
    while (T--) {
        solve();
    }


    return 0;
}


#pragma clang diagnostic pop

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3720kb

input:

0.5 0.25

output:

11111111111111111111111111111111111111111111111121

result:

ok ok

Test #2:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

1 0.75

output:

11111111111111111111111111111111111111111111111122

result:

ok ok

Test #3:

score: 0
Accepted
time: 0ms
memory: 3948kb

input:

1 0

output:

22121111122212112111211111111111111111111111111111

result:

ok ok

Test #4:

score: 0
Accepted
time: 0ms
memory: 3668kb

input:

0.361954 0.578805

output:

21221112221211112221111112111121121122121111212112

result:

ok ok

Test #5:

score: 0
Accepted
time: 0ms
memory: 3724kb

input:

0.144888 0.140086

output:

22111112121111121211212111212212121122212222111211

result:

ok ok

Test #6:

score: 0
Accepted
time: 0ms
memory: 3648kb

input:

0.514397 0.969399

output:

11212212211221112221121221111211121212121111122222

result:

ok ok

Test #7:

score: 0
Accepted
time: 0ms
memory: 3728kb

input:

0.887873 0.402213

output:

11221212121221111121111221122212212221222212211221

result:

ok ok

Test #8:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

0.152004 0.176414

output:

12211222211222111211121122222122212112121121221211

result:

ok ok

Test #9:

score: 0
Accepted
time: 0ms
memory: 3716kb

input:

0.401831 0.860762

output:

12211222122211121222222222212112221212212111222122

result:

ok ok

Test #10:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

0.580629 0.869474

output:

22111212221112221212122111211221222121211212222122

result:

ok ok

Test #11:

score: 0
Accepted
time: 0ms
memory: 3772kb

input:

0.138673 0.508844

output:

11212211111121112212112212211221122211112112111112

result:

ok ok

Test #12:

score: 0
Accepted
time: 0ms
memory: 3964kb

input:

0.027182 0.263243

output:

11221112121221122222121212112112222211122122111121

result:

ok ok

Test #13:

score: 0
Accepted
time: 0ms
memory: 3960kb

input:

0.081714 0.212216

output:

12112221111111221222121212211211222211212112212211

result:

ok ok

Test #14:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

0.562775 0.388603

output:

11221112121111121111122221112222212212222122111221

result:

ok ok

Test #15:

score: 0
Accepted
time: 0ms
memory: 3880kb

input:

0.112949 0.147503

output:

22222121222222111121112212211111221211112221211211

result:

ok ok

Test #16:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

0.800247 0.150903

output:

11111211211222212221122211112121122111121212211211

result:

ok ok

Test #17:

score: 0
Accepted
time: 0ms
memory: 3716kb

input:

0.300103 0.584619

output:

11222111221222211221222211222121122112121221212112

result:

ok ok

Test #18:

score: 0
Accepted
time: 0ms
memory: 3884kb

input:

0.844720 0.070148

output:

11221222112111122221211211111222112121222221112111

result:

ok ok

Test #19:

score: 0
Accepted
time: 0ms
memory: 3712kb

input:

0.573320 0.123035

output:

12221212212211112121211122111222112222222122222111

result:

ok ok

Test #20:

score: 0
Accepted
time: 0ms
memory: 3752kb

input:

0.467281 0.231366

output:

12212111111112122122122121212211221212221122122211

result:

ok ok

Test #21:

score: 0
Accepted
time: 0ms
memory: 3944kb

input:

0.264769 0.373434

output:

11222112221221221121111222122221212112211222222121

result:

ok ok

Test #22:

score: 0
Accepted
time: 0ms
memory: 3724kb

input:

0.689729 0.570712

output:

22221211212222122122222221122212111212211112112112

result:

ok ok

Test #23:

score: 0
Accepted
time: 0ms
memory: 3884kb

input:

0.747218 0.312573

output:

22221121221122211211222212111211221121111111112121

result:

ok ok

Test #24:

score: 0
Accepted
time: 0ms
memory: 3748kb

input:

0.215052 0.203677

output:

21111211121211222221211111212212111121121111212211

result:

ok ok

Test #25:

score: 0
Accepted
time: 0ms
memory: 3656kb

input:

0.607834 0.733102

output:

21222121222111121212122112121121121122121222122212

result:

ok ok

Test #26:

score: 0
Accepted
time: 0ms
memory: 3716kb

input:

0.516860 0.252876

output:

22221222212111222221211121221222211122221211111121

result:

ok ok

Test #27:

score: 0
Accepted
time: 0ms
memory: 3716kb

input:

0.955285 0.457773

output:

11222112222122222222222221112221121111221121212221

result:

ok ok

Test #28:

score: 0
Accepted
time: 0ms
memory: 3708kb

input:

0.156178 0.353262

output:

22222112212212122211111222111112212222122112122121

result:

ok ok

Test #29:

score: 0
Accepted
time: 0ms
memory: 3716kb

input:

0.398701 0.040258

output:

12211111112221122121121211211221211222112112121111

result:

ok ok

Test #30:

score: 0
Accepted
time: 0ms
memory: 3880kb

input:

0.973859 0.000184

output:

22121111122212222221111111222211111122111111111111

result:

ok ok

Test #31:

score: 0
Accepted
time: 0ms
memory: 3664kb

input:

0.882213 0.556709

output:

12112211122211122111211211221222211121111212221112

result:

ok ok

Test #32:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

0.263822 0.460984

output:

11211122121212222222111211112211112211111112212221

result:

ok ok

Test #33:

score: 0
Accepted
time: 0ms
memory: 3716kb

input:

0.443432 0.034841

output:

22222121212222111222122222122121212212122211121111

result:

ok ok