本文主要起因是,一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论(微博原文),在微博上大家有各式各样的问题和想法。按道理来说这些都是编程的基本功,似乎不太值得写一篇文章,不过我觉得很多东西可以从一个简单的东西出发,到达本质,所以,我觉得有必要在这里写一篇的文章。不一定全对,只希望 ...
分类:
其他好文 时间:
2017-08-16 20:18:11
阅读次数:
258
385D - Bear and Floodlight 题目大意:有一个人从( l , 0 ) 想走到 ( r , 0 ),有 n 盏路灯,位置为( xi , yi ),每盏路灯都有一个照射的角度ai 这个角度内的区间都被照亮,问你走之前任意调路灯的方向,这个人只能走路灯照亮的地方,问你他最多能往 r ...
分类:
其他好文 时间:
2017-08-16 19:22:07
阅读次数:
123
题解: 考虑用线段树维护楼的最大值,然后这个问题就很简单了。 每次可以向左二分出比x高的第一个楼a,同理也可以向右二分出另一个楼b,如果a,b都存在,答案就是b-a-1。 注意到二分是可以直接在线段树上进行的,所以复杂度是O(nlogn)。 当然这里是用分块做的,更暴力一些。 ...
分类:
其他好文 时间:
2017-08-16 19:09:52
阅读次数:
191
最近算法题也刷了不少,小有感悟。 我觉得刷题时一般的思维方式是迭代思维。就是我们老是想着通过循环,通过顺序解决下一个来迭代解决整个问题。 典型事例有:2Sum, 3Sum, 排序问题,以及用双指针或快慢指针法解决的问题。 迭代思维是一种很直接的思维方式,但绝不简单,因为找到正确的循环方式并不是一件容 ...
分类:
编程语言 时间:
2017-08-16 18:23:28
阅读次数:
178
把初始a的每一个元素对m次变换的贡献写出来,发现是一个斜着的杨辉三角,根据lucas,当且仅当a&b == b,C(a, b)为奇数,又因为&和^运算极快,4e10的复杂度也就跑了一秒。 #include <cstdio> #include <iostream> #include <algorith ...
分类:
其他好文 时间:
2017-08-16 18:23:18
阅读次数:
109
如何快速的求一个数二进制表示时1的个数呢。 除了用n&(n-1)外,还可以用下面的这种方法。 1. 最开始把相邻奇数位和偶数位相加 2. 然后相邻4位相加,相邻8为相加,相邻16为的相加。得到最后1的个数。 这种做法的复杂度的是log(位数) ...
分类:
其他好文 时间:
2017-08-16 18:20:40
阅读次数:
117
…… 指令这个讲起来还有点复杂,先把html弄上来: 上一节是解析完了input标签的2个属性,并将其打包进了directives属性中返回。 接着会继续跑genData函数,如下: 由于在处理v-model的时候给el添加了props与events属性,所以之后会跑进两个处理函数。 首先看看gen ...
分类:
其他好文 时间:
2017-08-16 18:19:12
阅读次数:
131
第六章 堆排序 最小堆和最大堆:近似的完全二叉树 A[parent(i)]<=A[i]或者A[parent(i)]>=A[i] 建堆复杂度O(n) 排序O(nlgn) 实际应用中,快速排序一般优于堆排序。可用于优先队列等。 在一个包含n个元素的堆中,所有优先队列的操作均可在O(lgn)时间内完成。 ...
分类:
编程语言 时间:
2017-08-16 17:28:34
阅读次数:
145
一、回顾早期的SQL SERVER版本:早在SQL Server 2000时代,查询分析器的功能还很简陋,远不如VS那么强大。到SQL Server 2005时代,代码高亮、SQL优化等功能逐渐加强,但是依然无法调试SQL语句。好一点的第三方的SQL语法编辑器似乎也不够完美,这样导致一些人抱怨存储过 ...
分类:
数据库 时间:
2017-08-16 15:19:46
阅读次数:
191
OpenMP是一种应用于多处理器程序设计的并行编程处理方案,它提供了对于并行编程的高层抽象。仅仅须要在程序中加入简单的指令,就能够编写高效的并行程序,而不用关心详细的并行实现细节。减少了并行编程的难度和复杂度。也正由于OpenMP的简单易用性,它并不适合于须要复杂的线程间同步和相互排斥的场合。 Op ...
分类:
编程语言 时间:
2017-08-16 15:16:52
阅读次数:
555