博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笛卡尔树
阅读量:6340 次
发布时间:2019-06-22

本文共 1377 字,大约阅读时间需要 4 分钟。

http://www.hhanger.com/?p=134

http://www.coderplusplus.com/?p=393

POJ 2201

const int N = 50010;int stack[N];int pre[N], lson[N], rson[N];struct node {    int key;    int val;    int id;} st[N];bool operator < (const node& a, const node& b) {    return a.key < b.key;}void init(int n) {    memset(stack, -1, sizeof(stack));    memset(pre, 0, sizeof(pre));    for(int i = 0; i <= n; ++i) {        lson[i] = rson[i] = 0;    }}void build_cartesian_tree(int n) {    int i, k, top = -1;    for(i = 0; i < n; ++i) {        k = top;        while(k >= 0 && st[stack[k] + 1].val > st[i + 1].val)   --k;        if(k != -1) {            pre[st[i + 1].id] = st[stack[k] + 1].id;            rson[st[stack[k] + 1].id] = st[i + 1].id;        }        if(k < top) {            pre[st[stack[k + 1] + 1].id] = st[i + 1].id;            lson[st[i + 1].id] = st[stack[k + 1] + 1].id;        }        stack[++k] = i;        top = k;    }    pre[st[stack[0] + 1].id] = 0;}int main() {    //freopen("data.in", "r", stdin);    int n, i;    while(~scanf("%d", &n)) {        init(n);        for(i = 1; i <= n; ++i) {            scanf("%d%d", &st[i].key, &st[i].val);            st[i].id = i;        }        sort(st + 1, st + n + 1);        build_cartesian_tree(n);        puts("YES");        for(i = 1; i <= n; ++i) {            printf("%d %d %d\n", pre[i], lson[i], rson[i]);        }    }    return 0;}

转载地址:http://fdhoa.baihongyu.com/

你可能感兴趣的文章
JVM内部原理
查看>>
中国cdn市场方面有哪些特点
查看>>
dwz uploadify在firefox下报http 302
查看>>
Java内存分析
查看>>
spring vmc3.1.1 上,通过AnnotationMethodHandlerAdap...
查看>>
web服务器的php安全设置
查看>>
C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
查看>>
Apache环境下页面乱码的几种可能总结
查看>>
JS实现鼠标拖动分页
查看>>
Android-Universal-Image-Loader --LruDiscCach
查看>>
Open Spring Board
查看>>
GrabKit
查看>>
MADismissiveTextView
查看>>
Android 滑动效果入门篇(一)—— ViewFlipper
查看>>
godaddy使用DNSPod解析域名
查看>>
repo - contains uncommitted changes
查看>>
php 删除文件夹内所有文件
查看>>
redhat更新yum源
查看>>
动态语言 静态语言 强类型语言 弱类型语言
查看>>
JavaScript Getter And Setter
查看>>