自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bestsort

关注微信公众号bestsort(bestsort的秘密基地),不迷路

原创 bestsort 开通公众号了~欢迎关注哟~

为什么会有这个想法这一阵子一直都在 看书 / 划水 / 完成课程作业。 由于想准备一下春招实习, 所以也看了不少 掘金, 知乎, 公众号上的文章。 真心觉得公众号是个好东西~ 个人博客最近更新很少, 其实不是因为懒。 而是觉得: 我不仅仅把博客当成发布文章的地方,而是一个我自己个人学习、总结的地方。 最近由于准备春招的原因, 知识摄入的都是一些零零碎碎的东西, 而且这部分内容很容易找到非常优秀...

2020-01-17 10:36:13 121

原创 设计模式之单例模式详解

单例模式可能是最最经常使用的模式之一了(另一个竞争对手是工厂模式)。 可能你并不知道单例模式是什么,但是无论是工作还是面试,你一定会听到这个词汇。概念单例模式是设计模式的一种,属于创建型模式。单例模式是指在一次程序的运行中,相同类的实例有且最多只有一个。这样看来,用static修饰的方法好像满足条件(因为每次都是调用的同一个类而不是用new关键字创建出来的类)。sorry,并不是这样的,单例...

2020-01-20 21:22:25 39

原创 JDK动态代理源码剖析

前置技能: Java、代理模式newProxyInstance在上一文中(没看的欢迎回去复习,要考的~),我们通过JDK实现了动态代理。为什么实现了InvocationHandler接口就可以进行代理? 我们这一次尝试从 Main 开始去分析一下源码。可以看到Main调用了Proxy.newProxyInstance(RobTicket.class.getClassLoader(), ...

2020-01-17 10:27:54 150

原创 关于Redis缓存的一些思考

前言从一开始写 BBS-lite 的时候我就有打算整合 Redis 作为缓存, 但是在经历过 MyBatis整合Redis --> Spring Boot封装好了的Redis Cache --> 自己写Jedis控制 --> 自定义注解切入Service层进行缓存 等一系列流程后, 我发现缓存并不是这么简单。上述我使用过的方式都有一定的缺陷…MyBatis二级缓存整合Redi...

2020-01-17 10:15:54 279

原创 可持续化线段树(主席树) 算法模板与图解

#include <cstdio>#include <cmath>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <queue>#de...

2019-03-21 16:42:29 256

原创 UVALive 7832 Dictionary Game解题报告(字典树+树上删边游戏)

question We all know the famous game scrabble, where we want to make words using tiles. We will play a game with words. But it is reverse of scrabble. Here instead of making words we want to dest...

2019-03-08 19:45:34 118

原创 (组合游戏)SG函数与SG定理详解

文章目录前言什么是组合游戏必胜点和必败点的概念Sprague-Grundy(SG)定理SG函数前言  好久没写博客了,上一篇博客还是去年实训写的,一是因为寒假,二是因为随着难度的加深,学一个算法的时间也变长了很多(蒟蒻专有buff)。当然,最重要的还是因为自己懒~   后面会继续努力的。(这csdn的markdown编辑器又改版了越来越难用了)转载请注明转自bestsort的博客...

2019-03-05 19:22:33 6312 1

转载 Java抽象类与接口的区别

目录抽象类接口抽象类和接口的对比什么时候使用抽象类和接口Java8中的默认方法和静态方法很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。抽象类抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。...

2018-12-10 16:27:51 97 1

转载 Java中this和super的用法总结

这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各位指正~目录this1.普通的直接引用2.形参与成员名字重名,用this来区分:3.引用构造函数super1.普通的直接引用2.子类中的成员变量或方法与父类中的成员变量或方法同名3.引用构造函数super和this的异同: thisthis是自身的一个对...

2018-12-09 16:50:35 54

原创 Educational Codeforces Round 54 1076D Edge Deletion(Dijkstra 最短路树)

You are given an undirected connected weighted graph consisting of nnn vertices and mmm edges. Let’s denote the length of the shortest path from vertex 111 to vertex iii as dididi.You have to erase s...

2018-11-14 23:33:41 72

原创 2018ACM/ICPC 亚洲区域赛(青岛) 赛后总结

2018ACM/ICPC 亚洲区域赛(青岛) 我是蒟蒻!!!!!

2018-11-05 15:04:03 358

原创 Codeforces 1070A Find a Number(BFS) 2018-2019 ICPC, NEERC, Southern Subregional Contest Problem A

DescriptionYou are given two positive integers ddd and sss. Find minimal positive integer nnn which is divisible by ddd and has sum of digits equal to sss.InputThe first line contains two positive ...

2018-10-25 17:20:40 293

原创 第k短路 算法详解(图解)与模板(A* 算法)

A*是一种启发式搜索,根据目标地点和当前点的距离和估计要走的步数来决策下一步走哪个方向。而这两个参数,一般用g(x)g(x)和h(x)h(x),其中g(x)g(x)为xx点到目标点的实际距离。所以最终的我们要走哪个点取决于g(x)+h(x)g(x)+h(x),取可选点中g(x)+h(x)g(x)+h(x)最优的那个点走。而k短路,就是终点第K次被找到的时候。

2018-10-16 18:06:41 1931

原创 ACM修炼指南(网上通用版 -----已修改格式方便查看)

文章目录----------目录--------------------数据结构----------栈,队列,链表,树并查集平衡二叉树二叉排序树线段树树状数组字典树后缀数组,后缀树块状链表哈夫曼树桶,跳跃表Trie树(静态建树、动态建树)AC自动机LCA和RMQ问题KMP算法----------图论----------基本图算法图广度优先遍历深度优先遍历拓扑排序割边割点强连通分量Tarjan算法双...

2018-10-10 16:48:19 3088

原创 不知道怎么分类的东西

数论如果a和b互质,则a+ba+ba+b和a∗ba*ba∗b一定互质

2018-10-10 16:08:03 151

原创 AC自动机 算法详解(图解)及模板

ac自动机,就是在tire树的基础上,增加一个fail指针,如果当前点匹配失败,则将指针**转移**到fail指针指向的地方,这样就不用回溯,而可以路匹配下去了.(当前模式串后缀和fail指针指向的模式串部分前缀相同,如`abce`和`bcd`,我们找到`c`发现下一个要找的不是`e`,就跳到`bcd`中的`c`处,看看此处的下一个字符(`d`)是不是应该找的那一个)

2018-10-05 22:17:32 40423 54

原创 USACO2.4.5 Fractions to Decimals 分数化小数(模拟)

Description写一个程序,输入一个形如N/D的分数(N是分子,D是分母),输出它的小数形式。 如果小数有循环节的话,把循环节放在一对圆括号中。例如, 1/3 = .33333333 写成0.(3) 41/333 = 0.123123123… 写成0.(123) 用xxx.0 成表示整数 典型的转化例子: 1/3 = 0.(3) 22/5 = 4.4 1/7 = 0.(142857) 2/...

2018-10-04 10:15:37 266

原创 USACO2.3.2 Cow Pedigrees 奶牛家谱(DP)

Description农民约翰准备购买一群新奶牛。 在这个新的奶牛群中, 每一个母亲奶牛都生两小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3 <= N < 200)。这些二叉树有如下性质: 每一个节点的度是0或2。度是这个节点的孩子的数目。 树的高度等于K(1 < K < 100)。高度是从根到任何叶子的最长的路径上的节点的数目; 叶子是指没有孩...

2018-10-02 10:13:02 291

原创 USACO3.1.5 Contact 联系(枚举)

Description奶牛们开始对用电波望远镜扫描牧场外的宇宙感兴趣。最近,他们注意到了一种非常奇怪的脉冲调制微波被从星系的中央发射出来。他们希望知道电波是否是被某些地外生命发射出来的,还是仅仅是普通的的星星的心跳。 帮助奶牛们用一个能够分析他们在文件中记下的记录的工具来找到真相。他们在寻找长度在A到B之间(含)在每天的数据文件中重复得最多的比特序列 (1 <= A <= B &lt...

2018-09-29 21:42:24 353

原创 C++ 流 文件操作(输入输出流)

到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:数据类型描述ofstream该数据类型表示输出文件流,用于创建文件并向文件写入信息。ifstream该数据类型...

2018-09-26 20:37:15 5580 1

原创 USACO2.3.5 Controlling Companies 控制公司(dfs)

Description有些公司是其他公司的部分拥有者,因为他们获得了其他公司发行的股票的一部分。例如,福特公司拥有马自达公司12%的股票。据说,如果至少满足了以下条件之一,公司A就可以控制公司B了: 公司A = 公司B。 公司A拥有大于50%的公司B的股票。 公司A控制K(K >= 1)个公司,记为C1, …, CK,每个公司Ci拥有xi%的公司B的股票,并且x1+ … + xK >...

2018-09-26 12:21:14 331

原创 USACO1.3.4 Prime Cryptarithm 牛式 解题报告(模拟)

Description 下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式。 * * * x * * ------- * * * * * * ------- * * * *数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0。注意一下在美国的学校中教的“部...

2018-09-15 15:19:50 366

原创 USACO1.5.4 Checker Challenge跳棋的挑战 解题报告(N皇后 回溯法)

Description检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子。 列号0 1 2 3 4 5 6 -------------------------1 | | O | | | | | -------------------------2...

2018-09-14 20:24:43 344

原创 USACO1.4.3 Arithmetic Progressions 等差数列 解题报告(枚举)

Description一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的数列。 在这个问题中a是一个非负的整数,b是正整数。写一个程序来找出在双平方数集合(双平方数集合是所有能表示成p^2+q^2的数的集合)S中长度为n的等差数列。Input第一行: N(3<= N<=25),要找的等差数列的长度。 第二行: M(1&l...

2018-09-14 20:11:25 430

原创 USACO1.3.3 Calf Flac 解题报告 (Manacher算法)

Description据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘),那么母牛们会制造出世上最棒的回文。你的工作就是去寻找这些牛制造的奇观(最棒的回文)。 在寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出),只用考虑字母'A'-'Z'和'a'-'z'。要你寻找的最长的回文的文章是一个不超过20,000个字符的字符串。 我们将保证最长的回文不会超过2,000...

2018-09-14 20:07:56 204

原创 USACO2.1.4 Healthy Holsteins 健康的好斯坦奶牛 解题报告(二进制枚举)

Description农民JOHN以拥有世界上最健康的奶牛为骄傲。他知道每种饲料中所包含的的牛所需的最低的维他命量是多少。请你帮助农夫喂养他的牛,以保持他们的健康,使喂给牛的饲料的种数最少。 给出牛所需的最低的维他命,输出喂给牛需要哪些种类的饲料,且所需的种类数最少。Input第1行:一个整数V(1<=V<=25),表示需要的维他命的种类数。 第2行:V个整数(1<=...

2018-09-14 20:00:23 247

原创 USACO2.1.5 Hamming Codes 海明码 解题报告(枚举)

Description给出 N,B 和 D:找出 N 个编码(1 <= N <= 64),每个编码有 B 位(1 <= B <= 8),使得两两编码之间至少有 D 个单位的“海明距离”(1 <= D <= 7)。“海明距离”是指对于两个编码,他们的二进制表示法中的不同二进制位的数目。看下面的两个编码 0x554 和 0x234 之间的区别(0x554 表示一...

2018-09-14 19:50:24 144

原创 USACO2.2.1 Preface Numbering 序言页码 解题报告(模拟)

Description 一类书的序言是以罗马数字标页码的。传统罗马数字用单个字母表示特定的数值,以下是标准数字表:I 1 L 50 M 1000V 5 C 100X 10 D 500最多3个同样的可以表示为10n的数字(I,X,C,M)可以连续放在一起,表示它们的和:III=3CCC=300可表示为5x10n的字符(V,L,D)从不连续出现。除了下一...

2018-09-14 19:45:15 125

原创 USACO2.2.4 Party Lamps 派对灯 解题报告(枚举)

Description在IOI98的节日宴会上,我们有N(10<=N<=100)盏彩色灯,他们分别从1到N被标上号码。 这些灯都连接到四个按钮: 按钮1:当按下此按钮,将改变所有的灯:本来亮着的灯就熄灭,本来是关着的灯被点亮。 按钮2:当按下此按钮,将改变所有奇数号的灯。 按钮3:当按下此按钮,将改变所有偶数号的灯。 按钮4:当按下此按钮,将改变所有序号是3*K+1(K>=0...

2018-09-14 19:39:47 292

原创 USACO2.3.3 Zero Sum 和为零 解题报告(dfs)

Description请考虑一个由1到N(N=3, 4, 5 ... 9)的数字组成的递增数列:1 2 3 ... N。 现在请在数列中插入“+”表示加,或者“-”表示减,抑或是“ ”表示空白,来将每一对数字组合在一起(请不在第一个数字前插入符号)。 计算该表达式的结果并注意你是否得到了和为零。 请你写一个程序找出所有产生和为零的长度为N的数列。Input单独的一行表示整数N (3 &...

2018-09-14 19:30:22 261

原创 USACO2.4.1 The Tamworth Two 两只塔姆沃斯牛 解题报告(模拟)

2.4.1 The Tamworth Two 两只塔姆沃斯牛Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 18  Solved: 14[Submit][Status][Discuss]Description两只牛在森林里故意走丢了。农民John开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和John)。 追击在10x10的...

2018-09-14 19:22:10 213

原创 USACO2.4.4 Bessie Come Home 回家 解题报告(模拟)

Description现在是晚餐时间,而母牛们在外面分散的牧场中。 农民约翰按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只速度最快的母牛)。 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母牛。 每个牧场由一条条道路和一个或多个牧场连接(可能包括自己)。 有时,两个牧场(可能是自我相同的)之间会有超过一...

2018-09-14 19:18:51 384

原创 USACO1.4.4 Mother's Mil 母亲的牛奶 题解报告(dfs)

题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数,最初,A和B桶都是空的,而C桶是装满牛奶的。有时,约翰把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了。当然每一次灌注都是完全的。由于节约,牛奶不会有丢失。 写一个程序去帮助约翰找出当A桶是空的时候,C桶中牛奶所剩量的所有可能性。Input 单独的一行包括三个整数A,B和C。Output ...

2018-09-06 09:17:08 223

原创 eclipse环境搭建以及第一个JAVA程序

首先,我们需要下载2个东西:jdk和eclipse安装包,毕竟是国外的服务器,有时候直接用官网链接可能会奇慢无比(墙都懂的~ 文中用的是eclipse-python和jdk-10版本.这里我直接放下载链接了 eclipse:点击此处下载 jdk-10:点击此处下载 下载好后开始安装,先是jdk.目录默认即可 检验jdk是否安装成功,可以进入开始菜单,然后搜索cmd打开命令行,输入ja...

2018-08-28 14:30:43 803

原创 Manacher算法详解及模板(求解最长回文串)

Manacher用于求解最长回文子串。所谓回文串,便是"abccba"或是斗鸡山上山鸡斗这一类的,你会发现从左到右和从右到左读都是同样的内容。而最长回文子串便是求出给定串中最长的那一个回文串。 在没了解Manacher之前,我们可以直接暴力枚举,时间复杂度O(n3)O(n3)O(n^3),也可以

2018-08-15 20:58:42 6761

原创 划分树 详解及模板

划分树的目的:求区间内第K大数。对于此类问题,暴力的话直接对区间进行sort,但是时间复杂度很高,如果q次查询的话嘛,时间复杂度O(q*n*log(n))为了降低时间复杂度,我们采取将数组构造成树的形式,这样,时间复杂度能降到log(n),但是空间复杂度为n*log(n).建树规则为:`小于等于中位数的放在左子树,大于中位数的放在右子树`,以1-9的随机数组为例,建树方式如下:

2018-08-08 11:28:25 130

原创 Tarjan离线算法 (LCA最近公共祖先)

Tarjan离线算法是利用并查集和DFS来达到离线处理的目的 我们都知道,对于一棵树,后序遍历一遍,访问它的根的时机一定是后与它的孩子的。换一句话,当开始遍历它的根节点的时候,它遍历过的孩子的公共祖先一定是这个根而这也就成为了我们解题的思想。 由于是需要对整树进行DFS,所以Tarjan需要在所有信息都输入完毕后才能进行操作,这也是为什么要离线的原因 在线是能动态修改查询,比如线段树就...

2018-08-03 15:30:30 823 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 1749

原创 C++ algorithm算法库 acm常用函数统计

转载注明出处csdn bestsort函数统计求gcd__gcd(a,b).(两个下划线开头) int a=34,b=4; cout << __gcd(a,b)<<endl;注:部分oj可能不支持调用__gcd;求全排列求数组a

2018-07-31 16:11:59 1129

原创 高斯消元(and牛顿迭代法)详解及模板

高斯消元的最主要作用为求解线性方程组,说白了,就是解方程......消元的过程就是模拟人手算解方程的过程

2018-07-26 15:37:18 3086

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