破烂集
7376798669717289
这个作者很懒,什么都没留下…
展开
-
【破烂集】 输入问题
说实话这个问题之前一直没有意识到,后来才发现这门学问是如此高深,本着精益求精的态度,有些时间空间的高度优化还是必要的,有时候可能就跟炉石里的伏笔似的,所以即使在做最简单的问题的时候其实也能有一些不错的想法。由于这个问题十分高深,所以我也没有办法绝对说明,也是慢慢研究中的,但我会不断更新,把我所有的研究成果汇总整理到这里,war3里的女巫说过“help me , help you”我想还是有一定道理...原创 2018-05-25 13:12:12 · 290 阅读 · 2 评论 -
【破烂集】神奇的优化
之前沉迷于研究各种优化,看了很多网上关于常数优化的文章,突然豁然开朗,发现很多之前都没有想到过的细节,看了文章有理有据的论证之后,我发现原来有那么多可以改进的地方(举个例子,在xdoj如果开了O3优化可以快近一倍,这个O3优化可以视为把所有细节做到极致)我也进行了一些测试,现在就让我将我发现的地方一一说明。1++i代替i++ 看了文章,说i++需要另外存储之前的值,所以会比++i慢一些,所以...原创 2018-09-04 15:09:38 · 273 阅读 · 0 评论 -
【破烂集】used类型的快速初始化
有的时候如果要多次进行类似bfs这种活动的时候,需要多次初始化used数组,这个时候常规的做法是memset,但是其实这个可以o1进行,从而更快,做法如下int used[MAX_N];int col;初始化这样一个类似染色的数组,每次要进行bfs时让col++这样到时候判断used数组是否和col大小一致即可,显然这个方法可以做的次数是1e9+,所以没有任何问题。...原创 2018-08-29 22:51:25 · 213 阅读 · 0 评论 -
【破烂集】大佬的spfa
估计所有人在看过spfa之后基本都会把其他最短路的算法忘光把,因为spfa不但超级简单,而且还超级块,所以的确非常好用,之前看到一个大佬的spfa,感觉有几个不错的优化,用了之后把我1202的一个85ms左右的算法直接优化到65ms了,还是很给力的,所以在这里贴一下,主要在于用deque代替queue,并且在push的时候通过对于这个d的大小的一个模糊的判断决定放到前面还是放到后面(queue做不...原创 2018-08-22 20:43:46 · 237 阅读 · 0 评论 -
【破烂集】 几个技巧(长期更新)
最近沉迷邪术,在看了很多牛客大佬的代码之后发现自己的修为还远远不够。原来2的逆元可以这么求ll inv2 = mod - mod / 2;输入数组竟然可以这么输 for(int i = 0; i < n; i++) scanf("%d", a + i);这个取模也可以 for (int i = 0; i < n; i++) ...原创 2018-08-16 18:40:02 · 211 阅读 · 0 评论 -
【破烂集】 一种大佬的计算逆元的简便方式
这个代码很像1到n逆元的打表过程,证明就不写了,可以理解为是进行了一个extgcd,复杂度也一样(都是辗转取模),但是看到更清楚,代码也更简便,既不需要复杂的extgcd,也不用写快速幂,值得拥有。int inv(int x) { return x == 1 ? 1 : 1LL * inv(Mod % x) * (Mod - Mod / x) % Mod;}...原创 2018-08-15 18:20:52 · 279 阅读 · 0 评论 -
【破烂集】stl邪术——rope
之前做一道要用到splay的问题,因为并不会splay(同时懒得学习),所以就试图在论坛找找有没有偷懒的办法,没想到真的让我找到了,那就是rope这个结构,这个东西听说比较新,所以如果特别老的oj(比如poj和hdu)我觉得可能悬,不过dev(前提是新版的,不是机房那种)和牛客这些应该都可以支持。这个东西非常的方便,这里先留下一个坑(有兴趣的可以自己去查一查,相当于速成splay),之后研究了之后...原创 2018-08-12 18:47:22 · 929 阅读 · 0 评论 -
【破烂集】大佬的一个技巧——bitset优化
之前大佬的题解里面用到了这个优化,还是比较实用的,特别是在大bool数组中用了这个省空间省时间(比如邻接矩阵用这个会快很多),具体的用法各种博客里面有很多,百度搜索bitset即可,在这里就不赘述,我就说一些我的测试和大佬的比较精髓的代码。 首先这个东西理论上是可以按位进行操作和定义的,所以从空间来说应该应该会节省一些,不过从测试的结果来看,这点只对大数组有效,感觉任何bitset都会至少占用6...原创 2018-07-31 13:27:54 · 2663 阅读 · 0 评论 -
【破烂集】大佬的封装模板——平面几何
平面几何一直都算是我(可能是每一个人)比较头疼的一个问题,因为用cpp做几何题的一个最大的问题是精度,如果搞不好这个东西,那么很有可能会功亏一篑,所以如何用合理的语言构造一个相对完善的数学体系就变成了这个任务的重中之重,之前那位大佬的题解里面包含了一个功能极其强大,并且比较严谨的集合模板,经过了很长时间的翻译,解释和验算(还真的发现几处大佬的疏漏),这个模板基本被我搞定了,有了这个模板,基本上所有...原创 2018-07-24 19:02:24 · 331 阅读 · 0 评论 -
【破烂集】大佬的封装模板——输入输出
说实话在看了很多大佬的代码后(不管有没有理解),给人的第一个直观印象就是——他们的代码为什么看着和我们的风格相差那么大,用到了很多很多的类的封装和define,鉴于他们是大佬并且已经身经百战了,所以应该可以认为那些代码可能是包括他们,甚至是他们的前人很多人实战中经验的积累和智慧的结晶,所以我们应该尝试着去思考他们那些代码的好处是什么,我也想了很多,现在看来的确是好处多多。我就随便说几点我看到的,当...原创 2018-07-24 15:27:45 · 251 阅读 · 0 评论 -
【破烂集】 排列dfs的一个小发现
优化得还不是太好突然发现一个不错的好方法,可以优化排列组合dfs中的一些困难(比如输出排列),并且在时间上也有所优化,故而一提。对于组合数的问题的确一直是一个难题,而且我做的的确也不好,记得之前在做第三周的E的时候就是因为要输出排列,而我的那个方法简直坑到了极点,所以勉强过关,在发现了这个方法之后,我突然眼前一亮,感觉有了一雪前耻的机会。先说说我一般对组合数搜索处理的思路,第一种是最暴...原创 2018-05-26 13:27:23 · 178 阅读 · 0 评论 -
【破烂集】垃圾场里捡废品的各种研究 前言
oj是一个神奇的东西,我发现有一些事情并不仅仅是算法那么简单,看看poj就知道了,你千辛万苦写的一个代码时间的零头可能还不如最快代码的时间,所以优化是一个很重要的东西,同样的算法,不同的优化可以相差极大,这也是渐渐我们需要面对的一个问题,这个也是破烂集的一个初衷,不断学习并且同化自己的代码,从而进化,在代码的垃圾场当中检出有用的东西为我所用,这也算是一个研究并集结精华的任务吧。当然我也不是什么都懂...原创 2018-05-25 13:00:42 · 339 阅读 · 0 评论 -
【破烂集】大佬的bit
walker杜老师他们队 的bit,感觉非常实用,因为不但十分简洁,而且很方便大量构造,其他线段树也值得一试。struct bit{ int d[MAX_N]; void fix(int x , int s){ for( ; x <= N ; x += x & -x) d[x] += s; } int qry(int x) { int s = 0 ;...原创 2018-09-11 20:01:20 · 197 阅读 · 0 评论