- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 后缀数组理解
参考PDF cnblog gitbook 计数排序和基数排序都用到了第一步和每次求sa都用到了 基数是在第一关键字和第二关键字时用到 for(p=0,i=n-j;i<n;i++) y[p++]=i; for(i=0;i<n;i++) if(sa[i]>=j) y[p++]=sa[i]-j; y的内容是按照第二关键字排序结果(内容是下标),第一句是因为小于长度的没有第一关键字 ,所以排
2016-11-18 22:14:07 397
原创 压测总结
性能瓶颈一般是这三个方面:CPU、网络带宽、I/O 前提:带宽为5M,往返延迟为33ms,处理时间为16ms 若要忽略报文内容每次等待通信的时间。则5M/s * 50ms = 250KB 但是一般的TCP 窗口大小为几十B到4KB不等,8KB/ 5M/s = 1.6ms 因此发送1.6ms后即停止发送等待网络返回结果后才发送。 线程数分析: 5 线程的时候CPU调度无压力线程分
2016-11-17 16:58:47 1148
转载 POJ3270 cow sorting
题目描述: 给你一个数字序列(每个数字唯一),每次你可以交换任意两个数字,代价为这两个数字的和,问最少用多少代价能把这个序列按升序排列好。 题目的具体做法是参考刘汝佳的《算法艺术与信息学奥赛》大概思路是:以后再用别种方法解, 1.找出初始状态和目标状态。明显,目标状态就是排序后的状态。 2.画出置换群,在里面找循环。例如,数字是8 4 5 3 2 7 明显, 目标状态是2 3 4
2016-11-17 16:58:22 365
原创 AVL平衡树(详解)-JAVA版本
平衡二叉树在进行插入操作的时候可能出现不平衡的情况,AVL树即是一种自平衡的二叉树. 它通过旋转不平衡的节点来使二叉树重新保持平衡,并且查找、插入和删除操作在平均和最坏情况下时间复杂度都是O(log n) AVL树的旋转一共有四种情形,注意所有旋转情况都是围绕着使得二叉树不平衡的第一个节点展开的。 RBT VS AVL: 实际上插入AVL树和红黑树的速度取决于你所插入的数据.如果你的数据分
2016-11-17 16:52:04 568
原创 Tomcat 配置
一般来说对一项任务的重启,要么调用脚本,要么直接kill ClassNotFoundException “1catalina.org.apache.juli.FileHandler” 这个问题是catalina.sh 中JAVA_OPS设置的问题,要把-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 选项放在JA
2016-11-17 16:51:58 303
原创 poj 2709 Painter 坑爹贪心
#include #include #include #include #include using namespace std; #define maxn 256 int N,G; int a[20]; int min(int a,int b) { return a<b?a:b; } int main() { int i,j,k,ans; int tmp; while(scanf
2016-11-17 16:50:23 323
原创 区间dp
题目连接:点击打开链接 一般的dp就是寻找DAG图,区间dp的每步选择都是分成两边部分进行操作.共性特性(即一定要满足一个位置上要求) A. 求面积,从凸包中间枚举分割点 B.脱衣服穿衣服,衣服脱了不能再穿,可以套上.若该区间没有和第一个一样的则dp[i][j]=dp[i-1][j]+1 反之为dp[i][j]=min(~,dp[i+1][k-1]+dp[k][j]) //因为i和k一样但要
2016-11-17 16:48:36 320
原创 FFT
花了一天时间学习了一下FFT。 参考解决的问题:乘法加速。将O(n^2) 降低至O(nlogn)思想:原本的乘法是多项式的每一项去乘然后合并同类项,FFT将问题变为n个点的乘法。(x,y0)* (x,y1) = (x,y0*y1)做法:将多项式通过蝴蝶分治方法使用DFT转换为多点,每个点的取值是n阶虚数根。代码部分#include<bits/stdc++.h> using namespace
2016-11-17 16:46:24 957
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人