摘要: 倒序考虑每一个操作,对于一个操作$[l, r]$,他产生的影响区间将是$[r+1,r + r + l - 1]$,如果$r+l-1>K$的话,$K$之后的区间我们是不关心的。 暴力扫描这个区间 然后对于每一个位置,维护一个类似于并查集的东西。 扫到位置$i$,定义数组$f$ 表示$i$这个位置上的字 阅读全文
posted @ 2018-10-24 23:11 Ror_shach 阅读(483) 评论(0) 推荐(2) 编辑
摘要: 我这个人不怎么喜欢写轻重链剖分和LCT 还是喜欢dfs序、括号序列之类的 毕竟线段树好写多了 然后就有了这篇转载的文章 写在这边以后有时间看看 原文链接:https://www.cnblogs.com/weeping/p/6847112.html 参考自:《数据结构漫谈》-许昊然 dfs序是树在df 阅读全文
posted @ 2018-08-25 23:33 Ror_shach 阅读(715) 评论(0) 推荐(1) 编辑
摘要: Description: 就是给你一个数,你可以把它自乘,也可以把他乘或除以任意一个造出过的数,问你最多经过多少次操作能变换成目标数 思路:这题真的不怎么会啊。n = 20000,每一层都有很多个扩展状态,裸宽搜会被T,启发式函数又设计不出来…… 看了一个Vjudge上的代码才知道这题怎么写。 就是 阅读全文
posted @ 2018-07-23 00:34 Ror_shach 阅读(1021) 评论(2) 推荐(1) 编辑
摘要: Description: 就是两个人开车,只能向东开。向东有n个城市,城市之间的距离为他们的高度差。A,B轮流开车,A喜欢到次近的城市,B喜欢到最近的城市。如果车子开到底了或者车子开的路程已经超过了限制X就停。 问你从一个点出发,最后A行驶的里程数和B行驶的里程数。 倍增的妙用,这道题改变了我对NO 阅读全文
posted @ 2018-07-08 18:54 Ror_shach 阅读(383) 评论(0) 推荐(0) 编辑
摘要: Description: 给你一个n * m的方格纸,有一些格子无法被覆盖,然后用2*3的格子覆盖这个方格纸,问你最多能放多少个格子 神级状压 为了弄清楚这道题翻了无数篇解题报告,最后终于搞明白了 用三进制表示每行的状态。 比如对于第i行第j列的格子,如果i-1行,i行的j列都是空的则用0表示,i行 阅读全文
posted @ 2018-07-08 02:56 Ror_shach 阅读(496) 评论(0) 推荐(0) 编辑
摘要: Description: 就是把一个字符串压尽可能的压缩 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 const int N = 110, INF = 1e9; 6 stru 阅读全文
posted @ 2018-07-06 23:04 Ror_shach 阅读(406) 评论(1) 推荐(1) 编辑
摘要: Description: 给你一堆方块,颜色相同可以消去,每次消去的价值为消去方块的个数的平方。单个方块可以消去。问你最后收获的最大价值为多少 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace 阅读全文
posted @ 2018-07-06 22:53 Ror_shach 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 思路: 1. 此处的fhq treap的分裂是按照权值分裂然后插入的。将小于k的分为一棵子树,大于等于k的分为另一棵子树。 2. 删除的时候只要将大于等于min的分裂到以root为根的树中,另一部分不用管,扔掉。 3. 维护一个加标记,注意不要忘记某个地方的pushdown和pushup 其他就是f 阅读全文
posted @ 2018-04-21 23:12 Ror_shach 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 安装 本人的安装环境为Win10。 1. 首先从官网上下载一个CCF官方提供的Noi linux虚拟机以及安装文档 "传送门" 2. 然后,安装一个VMware Workstation 14 Pro,这里给出 "网盘" 然后一步步解压安装 记得安装的时候不要勾选"启动时检查产品更新",其他按照默认设 阅读全文
posted @ 2018-04-21 15:44 Ror_shach 阅读(26550) 评论(9) 推荐(7) 编辑
摘要: Description: 求无向图的必经边 思路:一眼题 将无向图缩成树,然后求两点树上距离 #include<iostream> #include<vector> #include<cstring> using namespace std; const int N = 2e5 + 10; int 阅读全文
posted @ 2018-04-05 23:48 Ror_shach 阅读(451) 评论(0) 推荐(0) 编辑