1 条题解

  • 3
    @ 2024-6-7 19:05:38
    #include <cstdio>
    #include <cstring>
    char mid[20], aft[20];
    void dfs(int ml, int mr, int al, int ar) {
        if (ml > mr || al > ar) {
            return;
        }
        printf("%c", aft[ar]);
        for (int k = ml; k <= mr; k++) {
            if (mid[k] == aft[ar]) {
                dfs(ml, k-1, al, al+k-ml-1);
                dfs(k+1, mr, al+k-ml, ar-1);
                break; 
            }
        }
    }
    int main(void) {
        scanf("%s", mid);
        scanf("%s", aft);
        int len = strlen(mid) - 1;
        dfs(0, len, 0, len);
        return 0;    
    }
    

    ac

    • 1

    [NOIP2001 普及组] 求先序排列

    信息

    ID
    1741
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    18
    已通过
    18
    上传者