自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tongqi

枯毁的温柔 在最后会长回来

  • 博客(228)
  • 收藏
  • 关注

原创 重读JDK源码(二):常用集合

常用集合

2020-10-26 20:30:56 184

原创 重读JDK源码(一):基础相关

楔子距离上次读《Java编程思想》已经过了很久,工作中一直在不断写逻辑,造轮子,但是对JDK源码反倒越来越陌生了,另外工作一段时间后也大概知道哪些是最常用的了,所以这次有针对性地重读一下,并好好做一次总结基础相关注意点Long这个缓存机制得注意下,有次配合IdentityHashMap使用时,使用Integer作为key时没去new出新对象,导致put时其实一直在用的是同一个内存地址,故不符合预期volatile是JVM提供的轻量级同步机制,这东西的三个特性是:保证可见性、不保证原子性、禁止指

2020-10-12 23:38:27 172

原创 《架构整洁之道》读书笔记

概述比较偏理论的一本书,可以沿着书的时间线感知到软件架构的演进,几点感受:架构的核心还是为了业务服务,体现软件价值的同时不断升级,尽量不要让系统架构影响业务决策(私以为做到这点并不容易)虽然计算机的语言,存储已经演进了很多版本,但是设计原则如SOLID及编程范式思想并未发生质的变化良好的软件架构除了保证系统用例及系统本身正常运行外,还要做到整洁,易扩展,边界分割清晰摩尔定律那个东西怎么看都不符合工学原理…更像是摩尔KPI这书还是比较偏理论适合架构师来读,想再进一步读懂还是要多实操读书笔记

2020-08-18 21:24:46 268

原创 《数据密集型应用系统设计》读书笔记

概述《数据密集型应用系统设计》断续读完的第一遍,未消化的点其实还很多,之后还会读第二遍,初读下来的几点感受:书绝对是概览分布式系统从点到面所用技术的好书,但是有门槛,需要对数据库、操作系统、计算机网络这些有一定了解看起来才会舒服,里面有些东西还得再看一遍书里内容涉猎很多,但是每一个模块多是浅尝辄止更像是一个索引,第二遍读时就需要根据每个索引展开却学习详细实例了像BAT这样的大厂发展基...

2020-04-03 16:35:00 769

原创 LFU算法的应用及实现

概述复习下LFU的原理:LFU原理及实现实现这里可以完全基于HashMap来完成设计,源码如下:public class LFUCache { private int cap; private int minFreq; private HashMap<Integer, Integer> map; private HashMap<I...

2020-03-30 21:32:55 1336

原创 一次LRU算法的应用及实现

概述最近刚好有个述求是希望实时维护社区最常被访问的达人列表作为推荐数据源,前置流程我通过Redis里的HyperLogLog已经计算了各达人主页的PV、UV,故只剩下一个类似LRU机制的达人列表要持久化维护了复习下LRU的原理:LRU原理及实现实现可以基于HashMap及LinkedList自己手写,也可以通过继承LinkedHashMap来设计,这里给出两种简单的实现方案:pu...

2020-02-02 16:20:49 332

原创 一个简单的上下界红包随机算法实现

概述在公司题库看到了这个,有点好奇微信的红包算法是怎么实现的,知乎看到了这个答案:微信红包的随机算法是怎样实现的? - 陈鹏的回答 - 知乎总结下核心的几点:内存实时计算模型,这个和电商体系下很多离线计算的红包不同,故在点击红包页面和领取红包详情页其实是两个状态,从用户动线角度手慢则无其实也合理判定是否还有红包可领取时类似商品库存一样有个分布式锁的判定,当领取红包后CAS模式写库,然后...

2020-01-05 17:39:35 320

原创 Spring学习笔记(四):Spring AOP原理及使用

1 简介概述AOP是Aspect Oriented Programming的缩写,意思是面向切面编程,提供从另一个角度来考虑程序结构以完善面向对象编程(相对于OOP),即可以通过在编译期间、装载期间或运行期间实现在不修改源代码的情况下给程序动态添加功能的一种技术。通俗点说就是把可重用的功能提取出来,然后将这些通用功能在合适的时候织入到应用程序中;比如安全,日记记录,这些都是通用的功能,我...

2019-12-15 21:37:43 184

原创 Spring学习笔记(三):Spring IOC原理及使用

Spring学习笔记(三):Spring IOC原理及使用一、Bean的初始化1.1 概述Spring 容器是实例化和管理全部bean 的工厂,Spring 默认将所有的bean 设置成单态模式,无须自己完成单态模式,即对所有相同id 的bean 请求都将返回同一个共享实例。因此,单态模式可大大降低Java 对象在创建和销毁时的系统开销。功能标识一个应用环境利用 BeanFactor...

2019-08-18 16:01:30 198

原创 Spring学习笔记(一):介绍

1 概述spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用。2 特性轻量级非入侵性的、所依赖的东西非常少、资源占用非常少、部署简单等,容易使用。控制反转根据配置文件创建及组装对象之间的依赖关系。就是由容器控制程序之间的关系,而非传统实现中,...

2019-08-04 16:55:39 153

原创 Spring学习笔记(二):Spring IOC介绍

Spring学习笔记(一):IOC与AOP一、Bean实例化方式:构造器实例化:xml配置,可通过&lt;constructor-arg&gt;及&lt;property&gt; 标签构造参数值(两者分别代表构造器注入与setter方法注入)静态工厂:xml里指定class属性及factory-method属性来指定实例化bean的方法实例工厂:xml里配置factory-bea...

2019-05-15 11:30:30 158

原创 Linux命令补充

操作命令补充:ctrl + a 光标移到行头,相当于Home键ctrl + e 相当于End键ctrl + k 删除从光标至行尾的字符通配符:

2018-04-19 17:15:17 166

转载 Git常用命令速查表

2018-04-10 20:50:31 168

原创 一篇简单的文章:ACMed && 后续

一篇简单的文章:ACMer—>Java Coder

2017-12-05 22:01:58 419

原创 CodeForces 567E President and Roads(最短路 + 双联通分量)

题目链接:http://codeforces.com/problemset/problem/567/E题意:给出一张有向图,要从起点走到终点,走的是最短路。对于每条边,如果该边是最短路上的必经路,则输出“YES”,如果修改某条边边权可使最短路变短,则输出“CAN X”,X表示最少需要修改的权值,如果修改后的边权会 <= 0,则输出”NO“思路:先预处理出那些在最短路上的边...

2015-11-07 21:53:31 999

原创 POJ 2288 Islands and Bridges(状压DP)

题目链接:http://poj.org/problem?id=2288题意:仍然是求一条哈密顿回路,不过权值和的计算包括三部分:所经过的点权和,连续经过的两个点的权值乘积,连续三个点彼此可达则再加上三点乘积,问最大权值为多少,且有多少种方案达到该权值,注意一条路径的走法只能算一次思路:dp[sta][i][j]表示当前状态为sta,前一个访问点为i,当前访问点为j所获得的权值,...

2015-11-05 22:16:17 787

原创 HDU 4127 Flood-it!(IDA*)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4127题意:给出N * N的方格,每种格子有初始颜色(0 ~ 5共计6种),每次可以选择一种颜色,使得与左上联通块相连的格子(邻接格或者与邻接格颜色相同的格子)全部变成该颜色,求最少的次数使得所有格子颜色相同思路:第一次写IDA*,通过枚举深度上限depth再设计估价函数求解,对于估...

2015-11-04 20:12:21 575

原创 CodeForces 589H Tourist Guide(树形DP)

题目链接:http://codeforces.com/problemset/problem/589/H题意:给出一张无向图,图上有些点是被标记的,现在要找出尽量多的路径满足:1.路径的起点和终点都是被标记过的点2.每个被标记的点最多只能作为某一路径的端点3.任意两条路径不能有公共边思路:考虑可以把环切开当成树来做,那么对于子树,如果该子树内有偶数个标记点,那么就可以...

2015-10-31 23:08:35 869 3

原创 CodeForces 589F Gourmet and Banquet(二分 + 最大流)

题目链接:http://codeforces.com/problemset/problem/589/F题意:以[L, R]的形式给出N个区间,在每个区间内需要选出相同长度的子区间,子区间可以不连续且每段只能被选一次,求该长度与N的乘积思路:考虑二分该长度,先将所给出的区间端点离散并编号作为二分图的右部,然后源点到左部N个点连边,容量为二分值mid,然后对于左部每个点,如果它所代...

2015-10-31 23:00:26 1145

原创 HDU 3861 The King’s Problem(强连通缩点 + 最小路径覆盖)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3861题意:给出一张N个点M条边的有向图,要求划分出的区域最少,划分规则满足:1.(u, v)互相可达,则u,v两点必须在同一区域2.若(u, v)两点有一个可达另一个,则可划在同一区域,也可不划3.每个点只属于一个区域思路:对于1条件,则强连通内的点必在同一区域,故先强...

2015-10-31 22:41:27 551

原创 HDU 5115 Dire Wolf(区间DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115题意:有N只狼要杀,每只狼有两个属性,一个是攻击值,一个是附加值,每杀一只狼,受到的伤害是该狼的攻击值 +邻近两只狼的附加值,求杀完所有狼所受的最小伤害思路:dp[l][r]表示杀完[l, r]内的狼所受的最小伤害故而有转移方程:dp[l, r] = min(dp[l, ...

2015-10-28 16:20:52 519

原创 HDU 3727 Jewel(划分树 + 二分)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3727题意:有四类操作:1.insert x 在当前序列最后插入数x2.query_1 s t k查询序列[s, t]内第k小的数3.query_2 x查询数x的rank4.query_3 x查询[1, len]内第k小的数,len为当前序列的长度思路:因为...

2015-10-28 15:28:05 462

原创 UVALive 7037 The Problem Needs 3D Arrays(最大密度子图)

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5049题意:给出1~N这N个数的排列,要求找一个子序列满足其逆序对个数r(s)和其长度l(s)比值最大思路:最大密度子图问题,《最小割模型...

2015-10-12 21:35:57 937

原创 HDU 4729 An Easy Problem for Elfness(树链剖分 + 二分)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4729题意:给出一棵树,每条边有不同的容量,给出多组询问,每次询问给出源点,汇点和预算额,可以任意建一条新边其预算为A,或者将某条边扩大1的容量费用为B,问在预算允许范围内S-T的最大流为多少思路:在未进行任何操作时,先算出S-T的最大流,其实是树上瓶颈边的容量cap,如果A &l...

2015-10-05 21:27:26 543

原创 ZOJ 3760 Treasure Hunting(最大流)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3760题意:给出一些点,每个点的价值为xi & yi,要求选出点集任意两点满足gcd(xi ^ yi ^ xj ^ yj, p) > 1,求点集最大价值思路:因为p是偶数,所以要求i, j两点必须(xi ^ yi)与(xj ^ yj...

2015-10-05 21:20:41 417

原创 HDU 4056 Draw a Mess(并查集)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4056题意:有N * M个格子,现在有矩形,菱形,圆形,倒等腰三角形四种图形可以覆盖格子,覆盖颜色有九种,后覆盖的图形颜色会代替之前该格的颜色,问最终每种颜色覆盖了多少格子思路:将所给出的图形倒着顺序覆盖,这样就不需要考虑之后的重复覆盖了,只需要将之前被覆盖的格子处理出来,考虑对每行...

2015-10-03 21:42:22 692

原创 ZOJ 3231 Apple Transportation(上下界费用流)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3231题意:给出一棵树,每个结点上面有不同一定数量的苹果,要将这些苹果运送到不同的结点,使得整棵树苹果数的方差最小,每条边都有运送一个苹果的边权,求达到方差最小的所需最小费用思路:考虑最终状态,结点的苹果数一定是ayg或avg + 1,所以每个结...

2015-09-29 16:35:38 779

原创 HDU 5458 Stability(树链剖分 + 并查集)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5458题意:给出一张N个点,M条边的无向图,有两个操作:1.删除(u, v)间的一条边2.如果删除(u, v)间的一条边可使其不连通,找出这样的边的个数,就是找(u, v)间桥的个数思路:首先离线这些操作,时光倒流从最终状态逆着加边加回原图,可以考虑用并查集建树,...

2015-09-23 22:27:23 909

原创 HDU 3966 Aragorn's Story(树链剖分)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3966题意:给出一棵树,有三种操作:1.(u, v)路径上的点权值全部加上X2.(u, v)路径上的点权值全部减去X3.查询u点的值思路:树链剖分,然后区间更新,单点查询#include <cstdio>#include <cstri...

2015-09-23 21:42:24 417

原创 HDU 5221 Occupation(树链剖分)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5221题意:有个人想占领一棵树上的城市,有三种操作:1.占领(u, v)间的所有城市2.失去u城市3.占领以u点为根的所有城市每次操作后输出他所占领的所有城市权值和思路:对于1,2操作是树剖的基本操作,而对于3操作,可以在剖分时记录下每个点的子树的最大时间戳,这样因为...

2015-09-23 21:23:27 720

原创 UVALive 5985 Robbing Gringotts(费用流 + 折半状压)

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3996题意:有N个强盗要去抢M个房间,每个强盗有容量为Vi的背包,的每个房间有Xi个物品,每个物品容量为Wi,强盗进入房间后要么选取物品的子集合塞满...

2015-09-15 23:24:04 976

原创 UVALive 5906 Smoking gun(差分约束 + toposort)

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3917题意:给出N个人坐标及M个人听到枪声的顺序,问是否存在一个开枪顺序能够满足这M个关系,如果存在是否多解,如果唯一解输出开枪顺序思路:...

2015-09-15 16:05:04 550

原创 HDU 5442 Favorite Donut(后缀数组)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5442题意:给出一个字符串环,要求以某点作为起点选择顺逆方向吃完整个环,使得字典序最大,如果有多种选择,先选择位置最靠前的再选取顺时针方向思路:先按正方向将串扩成两倍,再按反方向将串扩成两倍,中间用较小的特殊符连接,然后找到后缀最大的字符串,然后利用高度数组逆着判断当前字符串是否仍满...

2015-09-15 13:20:31 463

原创 HDU 3231 Box Relations(拓扑排序)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3231题意:一个三维空间内有N个立方体,立方体的边与坐标轴平行,给出一些关系,问能否满足并构造出解,关系有两种:1.某两个立方体相交2.某个立方体所有点某一维坐标 < 另一个立方体所有点该维坐标思路:考虑每一维坐标,设两个立方体左右边界非别为L1,R1,L2,R2,则有...

2015-09-05 21:24:06 531

原创 HDU 4067 Random Maze(费用流)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4067题意:给出一张有向图,需要在图中删除一些边满足一下条件:图只有一个起点s和终点t,对起点而言有入度 =出度 - 1,终点则相反,其他点满足入度 == 出度,对于每条边选择保留或者删除都需要一定花费,问最终构成一张这样的图所需的最小花费思路:考虑一个贪心的想法,对于每条边保留费...

2015-09-05 21:05:29 613

原创 HDU 4028 The time of a day(DP)

题目链接:acm.hdu.edu.cn/showproblem.php?pid=4028题意:题目转化后就是在1~N中任选数字组成LCM,问有多少种组法使得LCM >= M思路:考虑dp[i][j]为选至第i个数lcm为j的方案数,考虑lcm值很大会爆内存,但是可组成的lcm的个数不算特别多,故考虑用map进行映射,每个map保存lcm值和方案数两个值,根据lcm的值进行...

2015-09-04 22:20:49 442

原创 HDU 4029 Distinct Sub-matrix(hash + 后缀数组)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4029题意:找出一个矩阵中有多少不相同的子矩阵思路:考虑用hash将一个字符串变成一个数字,可以枚举宽度对每一个宽度w下的字符串进行hash,hash[i][j]即表示s[i][j]到s[i][j + w - 1]字符串的哈希值,再然后按照hash[1][0], hash[2][0]...

2015-09-04 21:49:10 487

原创 HDU 4700 Flow(瓶颈生成树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4700题意:给出一张N个点的图的最小割矩阵,问能否构造出一个满足该矩阵的图思路:这题和之前长春区域赛的一道题有相似之处,考虑最终构造出一棵树,先将边降序排列,这样可以保证每次新加进去的边都是该生成树的瓶颈路,而瓶颈路恰限制住了两点间的流量,不过原图如果存在g[i][j] < m...

2015-08-17 23:03:48 807

原创 POJ 3764 The xor-longest Path(字典树 + 贪心)

题目链接:http://poj.org/problem?id=3764题意:给出一棵N个点的树,定义两点间的异或权值为这两点间的所有边权的异或值,求树中最大的两点异或权值思路:对于异或有性质 A ^ C = (A ^ B) ^ (B ^ C),故而树上两点A, C的异或值可以通过与两点分别于根节点的异或值再异或得到,这样可以先预处理出所有点到根节点的异或值,然后考虑这N个值如何...

2015-08-17 22:03:49 492

原创 POJ 3762 The Bonus Salary!(费用流)

题目链接:http://poj.org/problem?id=3762题意:有N个任务,每个任务有开始时间,结束时间和价值,现在有M天,每天的同一个时刻只能执行一个任务且每个任务必须连续执行,问能获得的最大价值思路:先将每个任务的开始时间和结束时间先hash后离散,这样就可使点集数目cnt在2 * N以内了,题目也就相当于给出了若干区间段,选出权值和尽量大的一些区间使得任意一个...

2015-08-17 21:50:42 425

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除