这是一道很普通的题。。

最近花了很多时间来想要去干什么,感觉自己还是太拿衣服

做这道题是因为偶尔看到了lavender的blog和她的bzoj早期AC记录,就被题目深深地吸引到了,原因有二:

自己splay还不是很会,想练练手

这道题居然过了两千多人,应该比较经典

>_<然后就看着jiangshibiao大爷的blog写代码,平易近人 http://blog.csdn.net/jiangshibiao/article/details/26011791

还稍稍改进了其中操作3、4的地方,yeah#

int rank(int x,int v)
{
  ;
  )
  {
    ]==)num[f1][]=;
    ]+;
    ];];
  }
  ;
}
int findx(int x,int k)
{
  ]+)return a[x];
  ])],k);
  ],k-num[x][]-);
}

然后没有发现太多的bug,但还是改了一个晚上,信息课的时候终于改出来了,MARK一下

insert(root,x),splay(node);//splay一定要放到主程序里写啊,否则错得太傻啦

此题数据详情请见 http://pan.baidu.com/s/1jHMJwO2

bzoj3223文艺平衡树

然后看到了上一道题顺带去写了一下。。学习了splay的区间翻转,尚未好好消化

大概是一个标记和维护顺序的思想,写的这题也比较水,几个需要注意的地方:

1.要时刻提防所有的点都加上了2

2.要时时明确数值与位置的排序,在这道题里是按位置排名的

3.这道题的num与上题num是不同定义的,采用上题的方法更加普遍

4.学习了更加精妙的rotate和splay写法,细节的地方不要手抖了

void rotate(int x,int &k)
{
  int y=fa[x],z=fa[y],l,r;
  ]==x)l=;;r=-l;
  if(y==k)k=x;else
  {
    ]==y)son[z][]=x;]=x;
  }
  fa[x]=z;fa[y]=x;fa[son[x][r]]=y;
  son[y][l]=son[x][r];son[x][r]=y;
  pushup(y);pushup(x);
}
void splay(int x,int &k)
{
  while(x!=k)
  {
    int y=fa[x],z=fa[y];
    if(y!=k)
    {
      ]==x^son[z][]==y)rotate(x,k);
      else rotate(y,k);
    }
    rotate(x,k);
  }
}

[bzoj3224]普通平衡树/3223文艺平衡树的更多相关文章

  1. [题解]bzoj 3223 文艺平衡树

    3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3884  Solved: 2235[Submit][Sta ...

  2. bzoj 3223 文艺平衡树 - Splay

    3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3884  Solved: 2235[Submit][Sta ...

  3. 普通平衡树与文艺平衡树的splay代码

    主要综合借鉴了yyb和马前卒两位大佬的. //普通平衡树 #include <cstdio> #include <cctype> #include <cstring> ...

  4. bzoj 3223 文艺平衡树 splay 区间翻转

    Tyvj 1728 普通平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 17715  Solved: 7769[Submit][Status][ ...

  5. BZOJ 3223 文艺平衡树 [codevs3303翻转区间]

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3223 通道2:http://codevs.cn/problem/3303/ 题目分析: 我 ...

  6. BZOJ 3223 文艺平衡树

    Description   您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2  ...

  7. 3223. 文艺平衡树【平衡树-splay】

    Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3  ...

  8. bzoj 3223 文艺平衡树 Splay 打标志

    是NOI2003Editor的一个子任务 #include <cstdio> #include <vector> #define maxn 100010 using names ...

  9. BZOJ 3223: Tyvj 1729 文艺平衡树

    3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3628  Solved: 2052[Submit][Sta ...

随机推荐

  1. 二维码相关工具Qrcode笔记

  2. EMS-Demo 雇员管理系统演示

    做了一个小小的雇员管理系统,主要使用了JTable,然后比较得意的地方是实现了拼音搜索,感觉很高大上其实只要引入一个Jpinyin.jar就可以了(网上到处都有下载或者去我的git项目的lib中下载) ...

  3. 2.2 顺序容器-list

    list(双向链表) 1) *  :包含头文件list **:不支持随机存取:增删元素时间是常数,只需要修改指针 2)成员函数 *  :vector的成员函数list基本都有 **:以下是部分独有成员 ...

  4. DBCC常用命令小汇

    DBCC是SQL Server提供的一组控制台命令,功能很强大,掌握一些必要的语句,对操作数据库有不少帮助,所以决定整理一下,发现已有不少类似的整理,减少了不少工作,归类如下: 一.DBCC 帮助类命 ...

  5. WebService - 怎样提高WebService性能 大数据量网络传输处理

    直接返回DataSet对象 返回DataSet对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用 ...

  6. 常用的数据统计Sql 总结(转)

    转:http://www.cnblogs.com/zhangweizhong/p/5577842.html 最近刚在搞一个BI的项目,里面需要大量的sql 数据统计相关运用,加深了我又对SQL的理解与 ...

  7. 设计模式学习之组合模式(Composite,结构型模式)(10)

    转载地址:http://www.cnblogs.com/zhili/p/CompositePattern.html 一.引言 在软件开发过程中,我们经常会遇到处理简单对象和复合对象的情况,例如对操作系 ...

  8. MVC4 自定义错误页面(三)

    一.概述 MVC4框架自带了定义错误页,该页面位于Shared/Error,该页面能够显示系统未能捕获的异常,如何才能使用该页面: 二.使用步骤: 1.配置WebConfig文件,在System.We ...

  9. 【翻译五】java-中断机制

    Interrupts An interrupt is an indication to a thread that it should stop what it is doing and do som ...

  10. Windows环境下Oracle数据库的自动备份脚本

    批处理文件(.bat) @echo off echo ================================================ echo  Windows环境下Oracle数据 ...