好了蠢蠢的我写了第一个LCT模板就炸掉了QAQ

开个blog记一下我能出多少锅。

1.splay写挂了hhh这个你真的是蠢

2.这个奇怪的东西

bool not_root(int x){return t[t[x].fa].son[0]==x||t[t[x].fa].son[1]==x;}
#define not_root(x)	(t[t[x].fa].son[0]==x||t[t[x].fa].son[1]==x)

奇奇怪怪hhh

这玩意要是写成上面那个可能会爆栈...至少某谷咕咕咕了hhh

调了一上午然后从darkbz下了波数据发现没毛病,然后交了一发bz他喵的A掉了...

所以以后最好写下面那个以防炸掉hhh

3.又一个奇奇怪怪的东西

void splay(int x)
{
push(x);
while(not_root(x))
{
int f=t[x].fa,gf=t[f].fa;
if(not_root(f))
(t[f].son[1]==x)^(t[gf].son[1]==f)?rotate(x):rotate(f);
rotate(x);
}
}

很明显,中间这个not_root(f)应该是对的,然而[bzoj2049]洞穴勘测 写成了gf也没挂...原因可能是因为那个只是维护连通性。

这个地方我也不知道为什么改成gf也是对的。哪位爸爸可以告诉我一下吗...

hhh补一个SPLAY的坑

void reverse(int x)
{
if(!x) return;
swap(ls,rs);
swap(t[x].lmn,t[x].rmn);
swap(t[x].lmx,t[x].rmx);
t[x].rev^=1;
}

这是不是非常正常的一段代码hhh 我这个sb写了个swap(t[ls],t[rs]);这很明显的错误啊 区间翻转变成了类似蝴蝶操作的东西???你该长点脑子了hhh

hhh我又来补坑了。。一个玄学的东西。

void access(int x)
{
int y=0;
do
{
splay(x);
t[x].son[1]=y;
//if(y) t[y].fa=x;
pushup(x);
y=x;x=t[x].fa;
}while(x);
}

就是被注释掉的那句。。。我也不知道为什么之前要写...但是很明显y的父亲一直是x...蠢哭...

经历一番讨论以后SCB神犇和我达成共识,findroot操作是不需要pushdown的,因为access的时候标记已经清空了QwQ

mdzz真要被自己蠢哭了

void rotate(int x)
{
//if(!x||!not_root(x)) return;
int f=t[x].fa,gf=t[f].fa;
int k=(t[f].son[1]==x),p=k^1;
//pushdown(f);pushdown(x);
t[x].fa=gf;t[f].fa=x;
if(not_root(f)) t[gf].son[t[gf].son[1]==f]=x;
if(t[x].son[p]) t[t[x].son[p]].fa=f;
t[f].son[k]=t[x].son[p];t[x].son[p]=f;
pushup(f);pushup(x);//pushup(gf);
}

看起来是不是非常正常!!!很好你也中招了。我们先修改了f的父亲,那么我们的not_root函数是不是GG了啊!!!

md从中午11:30开始肉眼比对了一下午(至少3h。。。)浪费多少时间mdzz..

留坑待补QwQ

Update1016

写了个二维RMQ发现ST表真的一言不合就RE啊

然后发现了一种写起来十分优秀的写法,省了空间还免RE

贴一下

for(x=1;x+(1<<(i-1))<=n;x++)
for(y=1;y<=m;y++)
w[x][y][i][j]=max(w[x][y][i-1][j],w[x+(1<<(i-1))][y][i-1][j]);

介个是一个二维的(一维的也一样w)

这样的话数组用多少开多少就可以了w

然后还有就是注意log里面不能为0不然也会GG的qaq

一个悲伤的故事。其中倒数第二次是到test73jf的。总共90组数据。

好了我已经意念AC了qvq

upd2018-11-30

非常舒适的树点涂色(大雾)

在线段树维护dfs序的时候一定要记得分开dfs序数组和xl数组 建树一定用的是xl

错了好多次了呢QAQ

还有LCT的时候是

if(not_root(f)) t[gf].son[t[gf].son[1]==f]=x;

QAQ

LCT的一些坑【已经变成坑点集合了233】的更多相关文章

  1. 写个 Hello world - 前端从入坑到弃坑系列教程(1)

    这是一个系列教程<前端从入坑到弃坑>的第一篇. HTML 是什么 说白了,HTML 就是网页的内容.比如你现在正在阅读的这个网页的内容,就是 HTML.如果你还不明白,请继续往下阅读. 写 ...

  2. Filezilla配置FTP中的坑以及出坑办法

    做本科生助教,老板让配置一个FTP传资料交作业,找了一台Windows服务器捣鼓,开始按网上教程自己配置特别麻烦,何西西说用Filezilla比较方便,就去Filezilla官网下载了Filezill ...

  3. 编程坑太多,Map 集合怎么也有这么多坑?一不小心又踩了好几个!

    点赞再看,养成习惯,微信搜索『程序通事』,关注就完事了! 点击查看更多历史文章 上一篇 List 踩坑文章中,我们提到几个比较容易踩坑的点.作为 List 集合好兄弟 Map,我们也是天天都在使用,一 ...

  4. Android项目开发遇到的问题(64K的错误)的解决之路,从入坑到出坑

    自己一个android项目,一直以来进展还算顺利,没有遇到什么严重性的问题,今天准备给同事手机上安装一下玩玩,谁知丢人丢大,无法build apk!报错!my god,我开发没问题啊,我手机连上usb ...

  5. 纯Socket(BIO)长链接编程的常见的坑和填坑套路

    本文章纯属个人经验总结,伪代码也是写文章的时候顺便白板编码的,可能有逻辑问题,请帮忙指正,谢谢. Internet(全球互联网)是无数台机器基于TCP/IP协议族相互通信产生的.TCP/IP协议族分了 ...

  6. Codeforces Round #536 (Div. 2) F 矩阵快速幂 + bsgs(新坑) + exgcd(新坑) + 欧拉降幂

    https://codeforces.com/contest/1106/problem/F 题意 数列公式为\(f_i=(f^{b_1}_{i-1}*f^{b_2}_{i-2}*...*f^{b_k} ...

  7. Java面试中遇到的坑【填坑篇】

    看到大家对上篇<Java面试中遇到的坑>一文表现出强力的关注度,说明大家确实在面试中遇到了类似的难题.大家在文章留言处积极留言探讨面试中遇到的问题,其中几位同学还提出了自己的见解,我感到非 ...

  8. python函数中把列表(list)当参数时的"入坑"与"出坑"

    在Python函数中,传递的参数如果默认有一个为 列表(list),那么就要注意了,此处有坑!! 入坑 def f(x,li=[]): for i in range(x): li.append(i*i ...

  9. MongoDB的安装避坑(踩坑)

    下载 可以去官网下载:https://www.mongodb.com/download-center/community 安装 下载完了就可以使用安装包安装:我下载的mongodb版本是:v4.0.9 ...

随机推荐

  1. xml基础之二(XML结构【2】)DTD文档模版

    xml基础之二(XML结构[2])DTD文档模版 xml 模板 文档结构  我们知道XML主要用于数据的存储和传输,所以无论是自定义还是外部引用DTD模板文档,都是为了突出数据的存储规范.DTD(文档 ...

  2. join当前线程等待指定的线程结束后才能继续运行

    模拟一个QQ游戏大厅斗地主 /** sleep(休眠.睡眠) join当前线程等待指定的线程结束后才能继续运行 */ class Player extends Thread{ private Stri ...

  3. EnumMap 源码分析

    EnumMap EnumMap 能解决什么问题?什么时候使用 EnumMap? 1)EnumMap[枚举映射]中的键值必须来自单个枚举. 2)EnumMap 根据枚举键的自然顺序来维护,迭代遍历是有序 ...

  4. JS 弹出网页 (不显示地址栏,工具栏) 网页去掉地址栏

    JS 弹出网页 (不显示地址栏,工具栏) 网页去掉地址栏 window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 基本语法: ...

  5. 如何在idea中查看jar包源码

    文章目录 准备jar包 idea打开文件夹 最后一步 准备jar包 例如,我准备看resin的jar,在桌面准备了一份 idea打开文件夹 在idea中file====>open=====> ...

  6. 【ABAP系列】SAP ABAP 用BAPI批量导入物料的质量视图

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP 用BAPI批量导入 ...

  7. Mac019--Ubuntu上安装Rancher

    首先安装:VisualBox虚拟机. 下载:ubuntu镜像 (ubuntu基于linux的免费开源桌面PC操作系统) ======================================== ...

  8. 使用Vsftpd服务(匿名访问模式、本地用户模式)

    FTP协议占用两个端口号: 21端口:命令控制,用于接收客户端执行的FTP命令. 20端口:数据传输,用于上传.下载文件数据.. FTP数据传输的类型: 主动模式:FTP服务端主动向FTP客户端发起连 ...

  9. JAVA总结--集合

    1.集合树状图 Collection:最基本的集合接口 ----List:有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问 ----ArrayList:异步 ----Linke ...

  10. JDK11 | 第一篇 : JDK11 介绍

    文章首发于公众号<程序员果果> 地址 : https://mp.weixin.qq.com/s/cOqRVlDgOqfDfKtkk1JGxw 一.简介 北京时间 2018年9 月 26 日 ...