- 博客(150)
- 收藏
- 关注
原创 谈谈B-Tree 和 B+Tree
前言周末在看《High Performance Mysql》(中文译为《高性能Mysql》)一书的时候,在index部分看到了B-Tree的概念,实际上这个名词于我而言并不陌生,毕竟之前为了应付面试的时候翻过很多博客,但今天再次看到这个名词时突然回忆不起来B-Tree到底是个什么东西了,于是用度娘去搜了一下,结果搜出来的定义千奇百怪(中文社区里面真的是一堆错误文章抄来抄去,甚至有人说B-Tre...
2020-03-22 17:23:45
737
原创 杂谈之什么是FullGC
本文基于JDK 1.8,使用的收集器为ParNew + CMS前言这篇文章的起因是这样的,在上周五凌晨很苦逼得参加双十一压测值班的时候,有个业务方突然打电话来说我们提供的客户端存在内存泄漏问题导致线上应用持续full gc,本来已经快要睡着的我立马就精神起来了,一通排查,最终定位到了确实是客户端有个bug会导致部分数据会被一直持有进入老年代之后gc不掉,从而就导致了老年代的频繁gc,具...
2019-11-15 16:54:09
31652
13
原创 idea 创建的maven+spring+mybatis项目整合 报错无法创建bean
最近在做一个由maven构建的spring+mybatis+struts2项目,刚开始的时候是用自己的老电脑Win7环境下的eclipse写的,托管到了码云上面,刚开始什么问题都没有直到某一天在公司的时候无聊想继续写这个项目,于是就把这个项目clone了一份在公司用的电脑上,在公司用的是mac+idea,结果问题就来了,clone下来的代码居然不能运行!!!,各种看着一脸懵逼的报错信息(ide
2016-07-26 20:29:47
12386
4
原创 2015长春网络赛1003 HDU 5439 Aggregated Counting
题目大意是说给你一个序列(其实这个序列叫做哥伦布序列)这个序列是一个自相关的序列a(n)表示这个序列中n出现了a(n)次,给定a[1]=1,a[2]=2现在要求的是G[i],G[i]表示的是最后一个出现次数为i的数的下标比如数列a=1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6,因为a[11]=5;所以G[3]=11;5是数列里面出现
2015-09-13 18:37:07
894
原创 字符串处理相关
1.KMP匹配假定有主串 S = s1s2s3s4s5s6....sn;模式串 T = t1t2t3t4t5t6...........tm;很容易想到的模式匹配算法为两重循环暴力求解但是这样在很多情况下时间复杂度不能满足要求,例如主串和模式串都较大的情况那么我们就需要对这个朴素的算法进行一些优化。首先考虑一下当我们一遍匹
2015-09-05 11:48:42
422
原创 哈希表
定义 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key
2015-08-19 22:56:30
424
原创 hdu 5289 Assignment
st处理区间最值然后就ok了,但是第一次写java代码、、、妈蛋。。内存不足报的是WA,,我也是日了狗了。import java.io.*;import java.util.*;public class Main{ static int T; static int n; static int k; static int f[][] = new i
2015-08-14 12:52:30
374
原创 最后一场多校 hdu 5288 OO’s Sequence
题意就是计算给出的公式我用的l[i]表示ai向前碰到的第一个因子位置用r[i]表示ai向后碰到的第一个因子位置然后ai能被加的次数就是(i-l[i]-1)*(r[i]-i)+(r[i]-i-1)+1,一个遍历加完就ok了#include#include#include#include#include#include#include#include#include
2015-07-23 22:22:06
312
原创 uva 11609 - Teams
大概就是一个排列的和公式吧#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x7fffffff#define lc
2015-05-24 17:20:12
370
原创 uva 11076 Add Again
题意大概就是给你n个数,用这n个数能组成m个整数,求m个整数的和这题知识点就一个就是有重复元素的全排列个数:有k个元素,其中第i个元素有ni个,求全排列个数:全排列个数=n!/(n1!*n2!*n3!*n4!....*nk!)算出每个数出现在每个位置的次数,然后加起来就可以了ps:这道题会卡long long 要用unsigned long long ,貌似uva以前的题经
2015-05-23 20:20:18
385
原创 poj 2096 Collecting Bugs
概率dp第一题期望倒着推,概率正着求用E(i,j)表示状态i,j到目标状态的期望步数那么会有E(i,j)=1+(i/n * j/s)*E(i,j)+(n-i)/n*(j/s)*E(i+1,j)+(i/n)*(s-j)/s*E(i,j+1)+(n-i)/n*(s-j)/s*E(i+1,j+1)然后移项,dp递推就ok了最开始我想的是用E(i,j)表示从状态(0,0)到达状态(i,
2015-04-28 17:29:39
370
原创 白书例题 uva 11021 Tribles
#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x7fffffff#define lc l,m,index<<1#defin
2015-04-27 20:48:41
437
原创 白书例题 uva 10561 Treblecross
反正贴代码就对了白书P138页#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x7fffffff#define
2015-04-25 21:56:36
347
原创 存一些数学用的模板
//ax+by=dvoid gcd(LL a,LL b,LL& d,LL& x,LL& y){ if(!b){d=a;x=1;y=0;} else{gcd(b,a%b,d,y,x);y-=x*(a/b);}}// a^p mod nLL pow_mod(LL a,LL p,LL n){ if(p==0) return 1; LL ans=pow_mod(a,
2015-04-24 19:31:14
335
原创 白书例题 uva 11426 GCD - Extreme (II)
题目就是说给你一个数n要求G(n)G的定义如下显然这种计算G(n)的值的可以通过递推来表示 G(n)=G(n-1)+f(n)那么我们的目标就转换成了求f(n)f(n)=gcd(n,1)+gcd(n,2)+gcd(n,3)+...gcd(n,n-1)我们用phi[i]表示i的欧拉函数值h[i][j]表示1~j-1中,与j的最大公约数为i的数的个数那么f(n)又可以转换
2015-04-20 21:29:08
340
原创 川大oj 4370: Huangshenno1's test
题解来自出题人的blog:http://www.huangshenno1.cn/blog/?p=161就是分块lca的思想下面上一发自己写的代码#include#include#include#include#include#include#include#include#include#include#include#include#include#incl
2015-04-19 18:07:06
506
原创 uva 11361 Investigating Div-Sum Property
很容易看出来是个数位dp,需要考虑的是怎样记录状态需要保证当前状态能被唯一确定才行看了别人的题解才想到的考虑到对于一个数x,x%k的值会等于(x的个位*1)%k + (x的十位*10)%k。。。。所以保存的状态前面可以存入一个数modk的值题意还要求了和也要为k的倍数所以再加一个状态为和%k的值这样dp[len][x][sum]就能表示一个确定的状态转移
2015-04-16 12:04:42
377
原创 uva 11401 Triangle Counting
f(n)表示在1~n的数列里取三个数,所能构成的不同三角形的个数,现在输入n求f(n)这是白书上的一道例题。。。一般这种题都可以转换成递推的形式f(n)=c(1)+c(2)+c(3).+....+c(n)f(n)=f(n-1)+c(n)所以关键是要求c(n)咯,c(n)就可以随便搞了。。我的c(n)和白书的思路不一样#include#include#include#inc
2015-04-13 11:45:24
329
转载 斐波拉切数列
转载自http://blog.youkuaiyun.com/acdreamers/article/details/21822165#comments最近要补一下数学了
2015-04-02 17:49:59
628
转载 莫比乌斯反演
转载自http://blog.youkuaiyun.com/acdreamers/article/details/8542292莫比乌斯反演在数论中占有重要的地位,许多情况下能大大简化运算。那么我们先来认识莫比乌斯反演公式。 定理:和是定义在非负整数集合上的两个函数,并且满足条件,那么我们得到结论 在上面的公式中有一个函数,它的定
2015-04-02 17:36:58
456
原创 Codeforces Round #273 (Div. 2) C Table Decorations
题意:有三种不同颜色的球,每三个球能组成一个环,但是这三个球不能是同一颜色的球,现在分别告诉你三种颜色的球的个数,球最多能组成多少个环思路:分情况讨论共有这么几种情况1.只有一种颜色的球2.只有2种颜色的球,并且个数相等3.只有2种颜色的球,但是个数不等,并且大的个数小于小的个数的两倍4.只有2种颜色的球,但是个数不等,并且大的个数大于等于小的个数的两倍5.有3种颜
2015-04-02 11:41:34
312
原创 Codeforces Round #247 (Div. 2) D Random Task
。。二分加数位dp、、没有想到二分。看了题解做出来的dp[i][j] //前i位1的个数为j的个数#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std
2015-04-01 20:15:17
320
原创 uestc oj 686 Hero Saving Princess
告诉你有n个点m条边,还有一个限制就是有的点需要钥匙才能访问,而有些点里面保存着钥匙,最后看能不能遍历完所有的点我的思路是bfs:vis数组表示点是否被锁住use数组表示点是否被访问canuse数组表示是否到达过这个被锁住的点num数组表示,比如num[a]=b,表示的是房间a里有房间b的钥匙在bfs的时候有三种情况:1.如果访问到一个被锁住的点就用canuse标记这个
2015-04-01 16:45:44
328
原创 Codeforces Round #247 (Div. 2) C k-Tree
dp[i][j][0]//第i层和为j不满足条件的个数dp[i][j][1]//第i层和为j满足条件个数#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace st
2015-03-31 11:23:57
372
原创 Codeforces Round #290 (Div. 2) E Fox And Dinner
刚看到这道题的时候就有感觉是一个图论题。。因为可以通过和为质数的两个数字之间建边来构图,但是怎么判成环一直在纠结,最后还是没纠结出来,就去看题解了ORZ然后看到了奇偶建图。。瞬间开窍。。因为感觉质数环肯定是奇偶交替的数形成的,对于两个和为质数的数a,b 。a为偶数,b为奇数,源点为s,汇点为t,只需要建立如下边s->a 容量为2a->b 容量为1b->t 容量为2
2015-03-30 19:15:51
356
原创 Codeforces Round #290 (Div. 2) D Fox And Jumping
gcd(a,b)=1,就ok了#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x7fffffff#define lc l,
2015-03-28 16:43:59
406
原创 Codeforces Round #290 (Div. 2) C题Fox And Names
我是直接暴力建边然后跑一边拓扑序就ok了因为数组开小了RE,WA了好几发。。#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf
2015-03-27 20:32:35
290
原创 poj 1741 Tree 树的分治
这个题自己完全不会做,,,只是看了解题报告之后自己尝试写了一遍。发现思路很是清晰首先是涉及到了树怎样进行分治,然后就引入了重心的概念,所谓树的重心就是删除这个点之后所得到的所有子树的最大顶点数最小,这样的话不管怎么切割这颗树,复杂度都不会退化得太严重然后具体算法就是把这颗树以重心为顶点分为几颗子树,那么满足条件的点对,要么是在同一子树中,要么是在不同两颗子树中,要么其中一个
2015-03-26 21:30:03
372
原创 poj 2763 Housewife Wind
LCA+BIT,LCA用的是基于RMQ的方式实现的,RMQ又是采用传说中的稀疏表实现,也叫st方法最核心的思想就是用dfs遍历一遍有根树,将遍历路径看做是一条链,这样就可以把树转化为链来做了,具体实现是运用了一个时间戳数组记录ps:不知道是递归层数太多,还是vector太坑爹,g++会TLE,c++就AC了#include#include#include#include#inc
2015-03-23 11:43:43
405
原创 lca相关
1.两个点的lca/*寻找两个点的lca记录根节点到u的深度为depth[u],到节点v的深度为depth[v]先让他们的深度保持一致,然后再一起向上走,知道找到lca*/vectorG[max_n];int root;int parent[max_n];int depth[max_n];void dfs(int v,int p,int d){ parent[v]
2015-03-21 12:24:32
310
转载 存一个数位dp的模板
记忆化搜索解数位dp方便快捷见效快。。。。const int MAX_DIGITS, MAX_STATUS;LL f[MAX_DIGITS][MAX_STATUS], bits[MAX_DIGITS];LL dfs(int position, int status, bool limit, bool first){ if (position == -1) return s
2015-03-17 22:59:09
339
原创 hdu 5072(容斥原理)
#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define inf 0x7fffffff#define lc l,m,index<<1#define rc m+1,r,index<<
2014-10-31 12:28:15
314
转载 HDU 5035(未AC)
概率论全还给老湿了。什么都不记得了、、、、、、https://www.zybuluo.com/rihkddd/note/34286
2014-09-26 14:17:28
424
转载 hdu 5037 Frog
转载至http://blog.youkuaiyun.com/zz_1215/article/details/39453753shus
2014-09-22 22:41:56
371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人