基本过程: 1、保持最大堆的性质:假设两个子堆都满足,只需要根节点依次换下去,复杂度O(lg n) 2、初始化堆:后半段都是叶子,在前半段从后往前,依次执行上述最大堆性质的操作,名义复杂度是O(n lg n),但是有更精确的计算, 在高度为h的节点为O(h), 因此为 n\sigma (h / 2^ ...
分类:
编程语言 时间:
2017-08-22 23:07:02
阅读次数:
220
//从后往前选取,选定位置i后,再在前i-1个里面选取m-1个。 //如 1 2 3 4 5 中选取 3 个 //1、选取5后,再在前4个里面选取2个,而前4个里面选取2个又是一个子问题,递归即可。 //2、如果不包含5,直接选定4,那么再在前3个里面选取2个,而前三个里面选取2个又是一个子问题,递... ...
分类:
其他好文 时间:
2017-08-15 15:19:06
阅读次数:
166
递推方程: 0, i = 0 or j = 0 C[i,j] = C[i-1,j-1] + 1, i,j > 0 and Xi = Yj max{C[i-1,j],C[i,j-1]}, i,j > 0 and Xi != Yj Xn串和Ym串,从后往前看,如果Xn=Ym,则最长公共子序列为Xn-1和 ...
分类:
其他好文 时间:
2017-08-12 20:28:11
阅读次数:
124
1 ${parameter%word}和${parameter%%word} ${parameter%word},word是一个模式,从parameter这个参数的末尾往前开始匹配。单个%进行最短匹配,也就是说,从后往前匹配,遇到了匹配成功立马停止。 ${parameter%%word},word是 ...
分类:
系统相关 时间:
2017-08-07 22:26:47
阅读次数:
234
题目链接: http://poj.org/problem?id=2528 解题思路: 线段树+离散化。10000个线段,20000个点,所以线段树最大是80000。离散化的方法:首先保存每个端点,然后排序+去重(unique函数)之后从头到尾映射一下就可以了。 更新时可以从后往前进行,这样,由于前面 ...
分类:
其他好文 时间:
2017-08-06 16:05:28
阅读次数:
167
day1真是萎的不行,又是被大佬们一阵狂踩...... T1在楼上打孔的环境下看了将近半个多小时才把题目看懂= =,手画了几组样例,感觉暴力都不怎么会打就过了......,0分 T2看了一下没什么特别的思路,30分暴搜直接上吧,结果哈希判重时k<<1打成了1<<k,还有不会取反的我把a[i]=!a[ ...
分类:
其他好文 时间:
2017-08-05 14:05:35
阅读次数:
130
排序分为四种(交换、选择、插入、合并): 冒泡排序: 从后往前依次比较,逐个交换,效率较低,时间复杂度为: 0(n) - 0(n^2) 0(n) - 0(n^2) 快速排序: 通过第一遍的遍历(让left和right指针重合)来找到数组的切割点,平均时间复杂度: N(logN),最坏时间复杂度: 0 ...
分类:
编程语言 时间:
2017-08-01 23:06:30
阅读次数:
212
1. 2. 3. 4. 5. 局部逆序函数组合 6. 7. 从后往前覆盖 8. O(N) O(1) 9.(多看几遍) ...
分类:
其他好文 时间:
2017-08-01 23:02:27
阅读次数:
198
题意:有n个人,每个人给出自己的名次区间,问最多有多少个人没撒谎,如果有多解,输出字典序最大的解。 分析: 1、因为字典序最大,所以从后往前分析。 2、假设后面的人没说谎,并将此作为已知条件,然后从后往前依次给每个人找到合适的名次,输出所有能找到合适名次的人即可。 3、假定给第i个人安排名次,第i+ ...
分类:
其他好文 时间:
2017-07-31 22:53:45
阅读次数:
115
冒泡算法:对于要排序的序列,每次将两个元素进行比较,如果排序错误则将两者进行交换,直到完成排序。 ...
分类:
编程语言 时间:
2017-07-30 13:57:41
阅读次数:
229