01 2019 档案

摘要:(转自澜神PPT) 普通的BST会卡,主要是由于仰仗于随机数据,如果"用心"构造数据就会被卡掉.考虑如何不被卡掉呢?我们可以"随机构建二叉树.算法导论第三版第169页-第171页有关于"一课有n个不同关键字的随机构建二叉搜索树的期望高度为lg(n)"的具体证明,有兴趣的可以看一看..所以对于离线的题 阅读全文
posted @ 2019-01-18 08:53 zzuqy 阅读(253) 评论(0) 推荐(0) 编辑
摘要:万事开头难,只要开始做就会比不做会的多. 爆零真的不开心. BST,Binary Search Tree,二叉搜索树.它可以做一个类似字典树,支持插入某个键值,询问某个键值的权值,删去某个键值.也可以做一个类似于优先队列的东西,查询区间最大值,区间最小值,一个键值v的前驱(小于v的最大的键值)后继( 阅读全文
posted @ 2019-01-17 17:18 zzuqy 阅读(167) 评论(1) 推荐(0) 编辑
摘要:先来渲染气氛. 我真的不知道怎么记忆化搜索,这里讲一下如何用几个循环A掉. 数对称的正方形是吧,我会n^5枚举!枚举顶点,枚举正方形长度,枚举其中的点判断是否合法.30分到手.100分需要n^3的算法. 以下先考虑正方形长度为奇数的时候如何写. 考虑n^5如何向n^3转化?认真思考发现枚举中间的点好 阅读全文
posted @ 2019-01-16 13:16 zzuqy 阅读(168) 评论(0) 推荐(0) 编辑
摘要:这题其实不难啊,为啥没人写. 理解完题意,首先预处理应该都会.然后考虑如何统计答案.直接想到一个暴力的方法:O(n^2)枚举左右端点,O(k)判断是否各个位置上的数都相同. 然后考虑如何把一个n改成一个log(n)?k比较小,可以往这边考虑 先考虑下面两个例子.这里每一位表示1,i时出现1的总数. 阅读全文
posted @ 2019-01-14 12:27 zzuqy 阅读(142) 评论(0) 推荐(0) 编辑
摘要:大意是已知权值,求分成若干组每组和大于等于0的方案数. 模拟一下,显然有一个n^3的转移. 然后发现显然有一个n可以利用前缀和省掉,40分到手. 然后考虑这个过程:ans[i]=当前sum小于等于sum[i]的权值ans加一块.这个过程是可以上树状数组的.sum[]可能范围过大,只需要三行离散化. 阅读全文
posted @ 2019-01-14 07:53 zzuqy 阅读(162) 评论(0) 推荐(0) 编辑
摘要:虽然写着AC自动机,但是我寻思着m*maxlen也能写啊为啥写的人这么少? 对于所有的单词可以建立一个字典树,小小的改动就是把单词的结尾记录sum++,然后枚举开头能跳的话就向下跳,如果跳到一个地方发现sum!=0显然可以ans+=sum,sum=0; <=50*1000000AC,甚至比康神AC自 阅读全文
posted @ 2019-01-11 17:00 zzuqy 阅读(151) 评论(0) 推荐(0) 编辑
摘要:弄了半上午的无向图联通性,高高兴兴的写这个题的时候想起来它是有向图联通性,于是又弄了半上午有向图联通性.中午开始做. 仔细看题,它究竟想问什么?想考什么? 作为一个无向图,可以直接求强连通分量+缩点,因为强连通分量内部互相可达,不如换成一个点.做第一问的时候,对于这样的新图,可以直接枚举点得到入度为 阅读全文
posted @ 2019-01-09 12:05 zzuqy 阅读(356) 评论(0) 推荐(0) 编辑
摘要:对于一个有向图,若任意两个节点x,y都有x到y的路径和y到x的路径,称它为强联通图.一个有向图的极大强联通子图被称为强联通分量.这里的极大与无向图里的极大双联通 子图类似,对于一个极大强联通子图A,不存在子图B也是强联通子图且A⊆B. 求有向图的强连通分量又要运用到tarjan算法.先对于有向图中的 阅读全文
posted @ 2019-01-09 09:08 zzuqy 阅读(389) 评论(0) 推荐(0) 编辑
摘要:noip集训前天天爆零,为了勉励自己,决定如果再爆零我就开始学tarjan,然后第二天果然没爆零. 总之tarjan对我来说是很难的. 考虑割点割边:割点是一个点,删去后图会分裂成两个以上不相连的子图.割边同理,只删去这个边后图会分裂乘两个以上不相连的子图.这个玩意非常重要,所以经常要用到.如何在线 阅读全文
posted @ 2019-01-08 14:33 zzuqy 阅读(265) 评论(0) 推荐(0) 编辑
摘要:在学二分图的时候遇见了,不如来写一下. 现在再看就很能想到二分图了,但是这里用一下并查集.先把边从大到小排序,对于每个边上的两个点都安排在另一个点+n里,直到两个端点在同一个集合里就证明不能再合并了,输出当前边. 对于样例 这是进行三次后的图的样子,下一个边2 3 3512就不能再进行匹配了,输出3 阅读全文
posted @ 2019-01-05 07:16 zzuqy 阅读(291) 评论(0) 推荐(0) 编辑
摘要:二分图就是一个节点数>=2的图如果能被分成左右非空的两部分,且同一集合内部的边不相连,那么就是一个二分图.一张图是二分图,当且仅当图中不存在点数为奇数的环.因为链都好说,而环内相邻的点一定都不在同一个部分,但是点数为奇数时就会有点不能找到自己的位置... 因为两个部分是等价的,对于一个图直接从一个节 阅读全文
posted @ 2019-01-05 06:39 zzuqy 阅读(234) 评论(0) 推荐(0) 编辑
摘要:大概就是一个基于克鲁斯卡尔算法的一个算法? 先考虑一个模板题:不带修改的离线. 给出一个图,离线求任意两点间最大边的最小值.之前写过题解的. 点我跳转 大概就是先做出来一个最小生成树(森林),然后对它进行lca.我只树上倍增lca所以恰好解决了不修改的离线. 但是只止步于此是不行的,最小生成树的lc 阅读全文
posted @ 2019-01-04 08:29 zzuqy 阅读(228) 评论(0) 推荐(0) 编辑
摘要:先不管那个+d,我们来考虑正常的可持久化字典树.总的思想就是贪心:用一个主席树模仿字典树,我发现当线段树总区间是2^n-1时每个小区间内部的01分布就与深度有关.比如左半边这一位都是0右边都是1这个样子.这样就可以O(1)地判断某个区间内有没有数,因为是一整个的区间,又因为向下到达根节点需要logn 阅读全文
posted @ 2019-01-02 20:51 zzuqy 阅读(217) 评论(0) 推荐(0) 编辑
摘要:先吹一波程序跑的速度 然后来看题: 给出两个4*4的棋盘状态,问你最少移动多少步使得一个状态转移到另一个状态.只能向上下左右移动,移动的位置不能有其他棋子. 刚开始认为很贪心,但是显然不是.然后考虑才16个棋子不如把所有状态都列一下2^16才65236个状态更何况达不到这么多.大概是多少呢?应该是2 阅读全文
posted @ 2019-01-02 16:01 zzuqy 阅读(174) 评论(0) 推荐(0) 编辑
摘要:听名字非常的厉害了,它是线段树的高级应用. 考虑如果你需要很多很多线段树的话,你需要开很多很多空间.但是如果这些线段树之间非常相似,我们可以把这一个线段树和上一个线段树共用大部分的节点. 比如一个对与一个数组建立主席树,一个个的把元素放进线段树的话当然可以把重新做一个线段树,但每次只有logn个节点 阅读全文
posted @ 2019-01-02 08:47 zzuqy 阅读(216) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示