- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 eclipse环境搭建以及第一个JAVA程序
首先,我们需要下载2个东西:jdk和eclipse安装包,毕竟是国外的服务器,有时候直接用官网链接可能会奇慢无比(墙都懂的~ 文中用的是eclipse-python和jdk-10版本.这里我直接放下载链接了 eclipse:点击此处下载 jdk-10:点击此处下载 下载好后开始安装,先是jdk.目录默认即可 检验jdk是否安装成功,可以进入开始菜单,然后搜索cmd打开命令行,输入ja...
2018-08-28 14:30:43 1010
原创 Manacher算法详解及模板(求解最长回文串)
Manacher用于求解最长回文子串。所谓回文串,便是"abccba"或是斗鸡山上山鸡斗这一类的,你会发现从左到右和从右到左读都是同样的内容。而最长回文子串便是求出给定串中最长的那一个回文串。 在没了解Manacher之前,我们可以直接暴力枚举,时间复杂度O(n3)O(n3)O(n^3),也可以
2018-08-15 20:58:42 8649 2
原创 划分树 详解及模板
划分树的目的:求区间内第K大数。对于此类问题,暴力的话直接对区间进行sort,但是时间复杂度很高,如果q次查询的话嘛,时间复杂度O(q*n*log(n))为了降低时间复杂度,我们采取将数组构造成树的形式,这样,时间复杂度能降到log(n),但是空间复杂度为n*log(n).建树规则为:`小于等于中位数的放在左子树,大于中位数的放在右子树`,以1-9的随机数组为例,建树方式如下:
2018-08-08 11:28:25 551
原创 Tarjan离线算法 (LCA最近公共祖先)
Tarjan离线算法是利用并查集和DFS来达到离线处理的目的 我们都知道,对于一棵树,后序遍历一遍,访问它的根的时机一定是后与它的孩子的。换一句话,当开始遍历它的根节点的时候,它遍历过的孩子的公共祖先一定是这个根而这也就成为了我们解题的思想。 由于是需要对整树进行DFS,所以Tarjan需要在所有信息都输入完毕后才能进行操作,这也是为什么要离线的原因 在线是能动态修改查询,比如线段树就...
2018-08-03 15:30:30 1471 3
原创 数位dp详解及模板
数位dp一般应用于:求出在给定区间[A,B]内,符合条件P(i)的数i的个数.条件P(i)一般与数的大小无关,而与 数的组成有关.比如说在HDU2089中, 让求区间内数中不有`4`和`62`的数字个数之和对于此类问题,我们一般设dp数组dp[i][j],表示i位数,最高位是j的数,不含有`62`和`4`的数有多少个对于上述不含有`62`和`4`的要求,递
2018-08-03 10:04:29 3280
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人