1 条题解

  • 0
    @ 2025-8-24 21:26:32

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar linhongzhao321
    **

    搬运于2025-08-24 21:26:31,当前版本为作者最后更新于2018-03-21 11:20:22,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目 P1563 玩具谜题

    看到那么多人的代码一堆if else 题解写一堆的,我有点眼花,把我的发上来吧 截止发布为止,以下代码是全部AC的

    这是一道简单的模拟类型的题,主要注意两点

    • 数据量有点大,int无法表示,用long才能100%AC
    • 朝外向左与朝内向右是一样的方向,反之亦然,因此模拟判断过程可以稍微简化
    #include <stdio.h>
    
    #define MAX_N 100000
    #define MAX_M 100000
    
    int main()
    {
        char er_dir[MAX_N] = {0};       // 存储朝向
        long n, m, i, cur = 0, a, s;
        char er_occ[MAX_N][11] = {{0}};     // 存储职业
        scanf("%ld%ld", &n, &m);
        for (i = 0; i < n; ++i) {
            scanf("%ld%s", er_dir+i, er_occ[i]);
        }
        for (i = 0; i < m; ++i) {
            scanf("%ld%ld", &a, &s);        // 获取左右和序数
            if (er_dir[cur] == a)       // 向外朝左与向内朝右是一致的,反之亦然
            {
                s *= -1;
            }
            cur = (cur + n + s) % n;
        }
        printf("%s", er_occ[cur]);
        return 0;
    }
    
    • 1

    信息

    ID
    556
    时间
    1000ms
    内存
    500MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者