专栏文章

题解:P1030 [NOIP 2001 普及组] 求先序排列

P1030题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mio4zmzx
此快照首次捕获于
2025/12/02 13:27
3 个月前
此快照最后确认于
2025/12/02 13:27
3 个月前
查看原文
这道题是求先序排列,和 P1827 [USACO3.4] 美国血统 American Heritage 非常相似(那道题求后序排列)。
请看我关于 P1827 的文章,并自行举一反三。
此处给出 AC 代码 ++ 注释。

代码

CPP
#include<bits/stdc++.h>
using namespace std;

void dfs(string x, string y){
    if(x.size() > 0){
        char root = y[y.size()-1];
        cout << root;
        
        int k = x.find(root);
        dfs(x.substr(0,k), y.substr(0,k));
        dfs(x.substr(k+1), y.substr(k,x.size()-k-1));
    }
}

int main(){
    string mid, back;
    cin >> mid >> back;
    dfs(mid, back);
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...