编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#1872 #993. 汉诺塔问题 Runtime Error 0 70 ms 420 K C++ 17 / 1.1 K t330026143 2023-10-15 16:58:18
显示原始代码
#include <bits/stdc++.h>
#define For(i, a, b) for (int(i) = (a); (i) <= (b); (i)++)

#define il inline

#define ll long long

using namespace std;
const int N = 35;
int n;
ll d[N];
int stk[5][5], cnt[4];
struct node {
    int fr, to;
} a[N];
bool vis[4];
char s[4];
il void dfs(int p, int c, int lst) {
    if (cnt[1] == c || cnt[2] == c) {
        d[c] = p;
        return;
    }
    For(i, 1, 6) {
        int j = a[i].fr, k = a[i].to;
        if (cnt[j] && j != lst) {
            if (stk[j][cnt[j]] < stk[k][cnt[k]] || !stk[k][cnt[k]]) {
                stk[k][++cnt[k]] = stk[j][cnt[j]];
                cnt[j]--;
                dfs(p + 1, c, k);
                break;
            }
        }
    }
}
int main() {
    scanf("%d", &n);
    For(i, 1, 6) {
        scanf("%s", s);
        a[i].fr = s[0] - 'A', a[i].to = s[1] - 'A';
    }
    stk[0][++cnt[0]] = 1;
    dfs(0, 1, -1);
    cnt[1] = cnt[2] = cnt[0] = 0;
    For(i, 1, 2) stk[0][++cnt[0]] = 3 - i;
    dfs(0, 2, -1);
    cnt[1] = cnt[2] = cnt[0] = 0;
    For(i, 1, 3) stk[0][++cnt[0]] = 4 - i;
    dfs(0, 3, -1);
    if (n <= 3)
        cout << d[n];
    else {
        ll k = (d[3] - d[2]) / (d[2] - d[1]), q = d[3] - k * d[2];
        For(i, 4, n) d[i] = 1ll * k * (d[i - 1]) + q;
        cout << d[n];
    }
    return 0;
}
子任务 #1
Runtime Error
得分:0
测试点 #1
Runtime Error
得分:0
用时:5 ms
内存:412 KiB

输入文件(hanoi0.in

5

答案文件(hanoi0.out

31

系统信息

Killed: Segmentation fault
测试点 #2
Runtime Error
得分:0
用时:4 ms
内存:364 KiB

输入文件(hanoi1.in

4

答案文件(hanoi1.out

15

系统信息

Killed: Segmentation fault
测试点 #3
Runtime Error
得分:0
用时:6 ms
内存:368 KiB

输入文件(hanoi3.in

24

答案文件(hanoi3.out

16777215

系统信息

Killed: Segmentation fault
测试点 #4
Runtime Error
得分:0
用时:3 ms
内存:360 KiB

输入文件(hanoi4.in

22

答案文件(hanoi4.out

4194303

系统信息

Killed: Segmentation fault
测试点 #5
Runtime Error
得分:0
用时:3 ms
内存:356 KiB

输入文件(hanoi5.in

7

答案文件(hanoi5.out

127

系统信息

Killed: Segmentation fault
测试点 #6
Runtime Error
得分:0
用时:4 ms
内存:340 KiB

输入文件(hanoi6.in

29

答案文件(hanoi6.out

536870911

系统信息

Killed: Segmentation fault
测试点 #7
Runtime Error
得分:0
用时:4 ms
内存:336 KiB

输入文件(hanoi7.in

28

答案文件(hanoi7.out

268435455

系统信息

Killed: Segmentation fault
测试点 #8
Runtime Error
得分:0
用时:5 ms
内存:356 KiB

输入文件(hanoi8.in

14

答案文件(hanoi8.out

16383

系统信息

Killed: Segmentation fault
测试点 #9
Runtime Error
得分:0
用时:3 ms
内存:420 KiB

输入文件(hanoi9.in

8

答案文件(hanoi9.out

255

系统信息

Killed: Segmentation fault
测试点 #10
Runtime Error
得分:0
用时:3 ms
内存:356 KiB

输入文件(hanoi10.in

51

答案文件(hanoi10.out

2251799813685247

系统信息

Killed: Segmentation fault
测试点 #11
Runtime Error
得分:0
用时:3 ms
内存:372 KiB

输入文件(hanoi11.in

55

答案文件(hanoi11.out

36028797018963967

系统信息

Killed: Segmentation fault
测试点 #12
Runtime Error
得分:0
用时:3 ms
内存:356 KiB

输入文件(hanoi12.in

53

答案文件(hanoi12.out

9007199254740991

系统信息

Killed: Segmentation fault
测试点 #13
Runtime Error
得分:0
用时:3 ms
内存:356 KiB

输入文件(hanoi13.in

42

答案文件(hanoi13.out

4398046511103

系统信息

Killed: Segmentation fault
测试点 #14
Runtime Error
得分:0
用时:3 ms
内存:356 KiB

输入文件(hanoi14.in

51

答案文件(hanoi14.out

2251799813685247

系统信息

Killed: Segmentation fault
测试点 #15
Runtime Error
得分:0
用时:4 ms
内存:336 KiB

输入文件(hanoi15.in

31

答案文件(hanoi15.out

2147483647

系统信息

Killed: Segmentation fault
测试点 #16
Runtime Error
得分:0
用时:5 ms
内存:356 KiB

输入文件(hanoi16.in

59

答案文件(hanoi16.out

576460752303423487

系统信息

Killed: Segmentation fault
测试点 #17
Runtime Error
得分:0
用时:3 ms
内存:356 KiB

输入文件(hanoi17.in

58

答案文件(hanoi17.out

288230376151711743

系统信息

Killed: Segmentation fault
测试点 #18
Runtime Error
得分:0
用时:3 ms
内存:404 KiB

输入文件(hanoi18.in

46

答案文件(hanoi18.out

70368744177663

系统信息

Killed: Segmentation fault
测试点 #19
Runtime Error
得分:0
用时:3 ms
内存:404 KiB

输入文件(hanoi19.in

41

答案文件(hanoi19.out

2199023255551

系统信息

Killed: Segmentation fault