这是一道很普通的题。。

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

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

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

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

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

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

  1. int rank(int x,int v)
  2. {
  3. ;
  4. )
  5. {
  6. ]==)num[f1][]=;
  7. ]+;
  8. ];];
  9. }
  10. ;
  11. }
  12. int findx(int x,int k)
  13. {
  14. ]+)return a[x];
  15. ])],k);
  16. ],k-num[x][]-);
  17. }

然后没有发现太多的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写法,细节的地方不要手抖了

  1. void rotate(int x,int &k)
  2. {
  3. int y=fa[x],z=fa[y],l,r;
  4. ]==x)l=;;r=-l;
  5. if(y==k)k=x;else
  6. {
  7. ]==y)son[z][]=x;]=x;
  8. }
  9. fa[x]=z;fa[y]=x;fa[son[x][r]]=y;
  10. son[y][l]=son[x][r];son[x][r]=y;
  11. pushup(y);pushup(x);
  12. }
  13. void splay(int x,int &k)
  14. {
  15. while(x!=k)
  16. {
  17. int y=fa[x],z=fa[y];
  18. if(y!=k)
  19. {
  20. ]==x^son[z][]==y)rotate(x,k);
  21. else rotate(y,k);
  22. }
  23. rotate(x,k);
  24. }
  25. }

[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. SQL Server output经典使用

    output经典使用 分类: sql2012-02-16 18:17 409人阅读 评论(0) 收藏 举报 outputinserttabledeletegonull OUTPUT是SQL SERVE ...

  2. Mysql复制之路由

    在主从复制读写分离的思路下,要想使所有写都到MasterServer,所有读都路由到Slave Server;就需要使用一些路由策略. 可以使用MysqlProxy[Mysql代理],据说MysqlP ...

  3. 苹果应用 Windows 申请 普通证书 和Push 证书 Hbuilder 个推(2)

    s上一篇 讲述了android 如何打包,这一篇 看一下如何IOS下打包 在苹果上申请证书,及其麻烦,我写下来,有需要的直接拿走即可: 首先 苹果的证书分两种 一种是 development 证书,另 ...

  4. poj1733(种类并查集+离散化)

    题目链接: http://poj.org/problem?id=1733 题意: 输入n表示有一个长度为n的0,1字符串, m表示接下来有m行输入, 接下来的m行输入中x, y, even表示第x到第 ...

  5. php 投票系统练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. mipi和dsi

    转自: http://blog.csdn.net/longxiaowu/article/details/24410021 一.MIPI MIPI(移动行业处理器接口)是Mobile Industry ...

  7. oracle使用dbms_metadata包取得所有对象DDL语句

    当我们想要查看某个表或者是表空间的DDL的时候,可以利用dbms_metadata.get_ddl这个包来查看. dbms_metadata包中的get_ddl函数详细参数 GET_DDL函数返回创建 ...

  8. C++ 基础 构造函数的使用

  9. BOOL in Object-C

    BOOL in Object-C typedef signed char BOOL; #define YES (BOOL)1 #define NO (BOOL)0 重构上页中的代码 - (BOOL)s ...

  10. JS常用语句

    JavaScript常用语句 1.document.write("");    输出语句 2.JS中的注释为   // 3.传统的HTML文档顺序是:     document-& ...