捣鼓了一下午。。按堆建树 写完交 返回TLE。。数据不大 感觉不会超了 无奈拿了数据来看什么奇葩数据会超 发现数据跟我输出不一样 看了好久才明白理解错题意了

给出的字符串有两个标签 按前一个来建二叉搜索树 按后一个建堆 搜索树直接排序 然后依次插入右子树  若当前值比前一个的值大 就在与其父亲比较 总之放到合适位置。

这样的树叫笛卡尔树

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<cmath>
#include<queue>
#include<vector>
#include<stack>
#include<set>
#include<string>
using namespace std;
#define N 50010
struct node
{
int l,r,p,f;
char s[];
void init()
{
l=r=f=;
}
}tr[N];
int g;
void build(int u)
{
int v = u-;
while(tr[u].p>tr[v].p&&v) v = tr[v].f;
tr[u].l = tr[v].r;
tr[v].r = u;
tr[u].f = v;
}
void solve(int root)
{
if(tr[root].l)
{
printf("(");
solve(tr[root].l);
printf(")");
}
printf("%s",tr[root].s);
if(tr[root].r)
{
printf("(");
solve(tr[root].r);
printf(")");
}
}
bool cmp(node x,node y)
{
return strcmp(x.s,y.s)<;
}
int main()
{
// freopen("data8.in","r",stdin);
// freopen("data.out","w",stdout);
int i,j,k,n;
while(scanf("%d",&n)&&n)
{
int mm = ,st;g=;
for(i = ; i <= n ;i++)
{
scanf("%s",tr[i].s);
}
sort(tr+,tr+n+,cmp);
for(i = ; i <= n ;i++)
{
for(j = ; j < strlen(tr[i].s) ; j++)
{
if(tr[i].s[j]=='/') break;
}
tr[i].p = atoi(tr[i].s+j+);
if(mm<tr[i].p)
{
mm = tr[i].p;
st = i;
}
tr[i].init();
}
tr[].r = ;
tr[].f = ;
for(i = ; i <= n ;i++)
build(i);
printf("(");
solve(st);
printf(")");
puts("");
}
return ;
}

最新文章

  1. Redis简单案例(三) 连续登陆活动的简单实现
  2. Android 中的 Intent 简介
  3. java-数字类
  4. 【树上莫队】【带修莫队】【权值分块】bzoj4129 Haruna’s Breakfast
  5. webstorm激活码
  6. 分享一下 aix安装python提示C编译器问题的办法
  7. LightOj 1096 - nth Term (矩阵快速幂,简单)
  8. Python打印格式化与字符串
  9. 动手实现Expression翻译器1
  10. 解决airserver在Windows下安装失败的问题
  11. Hadoop常用命令集合
  12. Struts2和SpringMVC的区别
  13. 4本相见恨晚的Linux入门书籍
  14. Odoo 学习【一】http &amp; rpc
  15. Nginx+rtmp+ffmpeg 搭建推流服务器
  16. c++中嵌入python
  17. Jquery Validate 相关参数
  18. BugPhobia准备篇章:Scrum Meeting工作分析篇
  19. sudoers的权限被改,又忘记了root密码,又不能重启。这么做。
  20. 高维数据降维 国家自然科学基金项目 2009-2013 NSFC Dimensionality Reduction

热门文章

  1. activiti自己定义流程之自己定义表单(一):环境配置
  2. Codeforces Round #253 (Div. 1) A Borya and Hanabi
  3. Scrum 常见错误实践 之 形式化的站会
  4. MVC 下 JsonResult 的使用方法(JsonRequestBehavior.AllowGet)&lt;转&gt;
  5. Hackrank Candies DP
  6. 将前端js异步调用的多个服务合并为一个前端服务
  7. c# 字节高低位
  8. Android系统input按键处理流程(从驱动到framework)【转】
  9. git unstage
  10. YTU 2573: 连续奇数和