编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#6543 #1082. 速算大师小 R Accepted 100 53 ms 384 K C++ 17 / 1.5 K t330026229 2024-11-16 16:31:16
显示原始代码
#include <bits/stdc++.h>
using namespace std;

#define int long long


const int N = 505;

inline int read() {
    int x = 0, f = 1;
    char c = getchar();
    while (c < '0' || c > '9') {
        if (c == '-')
            f = -1;
        c = getchar();
    }
    while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
    return x * f;
}

int res[N], tmp[N];

void mul(const int a[], const int b[], int c[]) {
    for (int i = 1; i < N; i++) {
        for (int j = 1; i + j - 1 <= 500; j++) {
            c[i + j - 1] += a[i] * b[j];
        }
    }
    for (int i = 1; i <= 500; i++) {
        if (c[i] >= 10)
            c[i + 1] += c[i] / 10;
        c[i] %= 10;
    }
}

void qpow(int x[], int k) {
    for (int i = 1; i <= 500; i++) res[i] = 0;
    res[1] = 1;
    while (k) {
        if (k & 1) {
            for (int i = 1; i <= 500; i++) tmp[i] = 0;
            mul(res, x, tmp);
            for (int i = 1; i <= 500; i++) res[i] = tmp[i];
        }
        for (int i = 1; i <= 500; i++) tmp[i] = 0;
        mul(x, x, tmp);
        for (int i = 1; i <= 500; i++) x[i] = tmp[i];
        k >>= 1;
    }
}

int x[N];

signed main() {
    int n = read();
    memset(x, 0, sizeof(x));
    x[1] = 2;
    qpow(x, n);
    int k = 1;
    res[1] -= 1;
    while (res[k] < 0 && k <= 500) {
        res[k] += 10;
        res[k + 1] -= 1;
        k++;
    }
    int p = 500;
    for (; p; p--)
        if (res[p])
            break;
    int num = ceil(1.0 * n * log10(2));
    printf("%lld\n", max(p, num));
    for (int i = 1; i <= 500 - p; i++) {
        putchar('0');
        if (i % 50 == 0)
            putchar('\n');
    }
    for (int i = p; i; i--) {
        printf("%d", res[i]);
        if ((500 - i + 1) % 50 == 0)
            putchar('\n');
    }
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:3 ms
内存:352 KiB

输入文件(calculator0.in

29

答案文件(calculator0.out

9
00000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000
<421 bytes omitted>

用户输出

9
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
000000000000000000000000
<384 bytes omitted>

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:4 ms
内存:384 KiB

输入文件(calculator1.in

40

答案文件(calculator1.out

13
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
<422 bytes omitted>

用户输出

13
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000
<385 bytes omitted>

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:4 ms
内存:272 KiB

输入文件(calculator2.in

38

答案文件(calculator2.out

12
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
<422 bytes omitted>

用户输出

12
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000
<385 bytes omitted>

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:5 ms
内存:268 KiB

输入文件(calculator3.in

57

答案文件(calculator3.out

18
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000
<422 bytes omitted>

用户输出

18
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000
<385 bytes omitted>

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:5 ms
内存:284 KiB

输入文件(calculator4.in

999

答案文件(calculator4.out

301
00000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000
<423 bytes omitted>

用户输出

301
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
0000000000000000000000
<386 bytes omitted>

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:6 ms
内存:380 KiB

输入文件(calculator5.in

777

答案文件(calculator5.out

234
00000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000
<423 bytes omitted>

用户输出

234
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
0000000000000000000000
<386 bytes omitted>

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:5 ms
内存:320 KiB

输入文件(calculator6.in

638

答案文件(calculator6.out

193
00000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000
<423 bytes omitted>

用户输出

193
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
0000000000000000000000
<386 bytes omitted>

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:8 ms
内存:324 KiB

输入文件(calculator7.in

191981

答案文件(calculator7.out

57793
37043631511832551985940428339432671387574409281795
83498751270460657402916553789345583706532
<425 bytes omitted>

用户输出

57793
37043631511832551985940428339432671387574409281795
83498751270460657402916553789345583706532828470930
84470466508389035693
<388 bytes omitted>

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:7 ms
内存:288 KiB

输入文件(calculator8.in

70012

答案文件(calculator8.out

21076
11821930302572978271947318179247041024284823160000
76729356705200490301962595011848908183110
<425 bytes omitted>

用户输出

21076
11821930302572978271947318179247041024284823160000
76729356705200490301962595011848908183110501604664
72595350457144159739
<388 bytes omitted>

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:6 ms
内存:252 KiB

输入文件(calculator9.in

1000000

答案文件(calculator9.out

301030
62444600041932855783251617241085645011001036578193
2044662563145803751358661759583345107758
<426 bytes omitted>

用户输出

301030
62444600041932855783251617241085645011001036578193
20446625631458037513586617595833451077584170520402
2698031471290583891
<389 bytes omitted>

系统信息

Exited with return code 0