自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 Introduction to Algorithm 第二章第一节

2.1-2import java.util.Random;public class pro2 { public void insertionSort(int[] a) { int n = a.length; for(int i = 1; i < n; i++) { int key = a[i]; int j = i - 1; while(j >= ...

2018-06-30 11:46:27 240

原创 nacos2.X服务注册心跳学习分享

nacos心跳设计学习

2022-10-04 20:44:04 2226 1

原创 SpringBootStarter slf4j 冷门错误(SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.)

logback 与 spring-boot-starter-logging冲突

2022-05-25 23:50:53 507 1

转载 POST和GET方法

w3c地址

2019-09-05 15:25:30 252

原创 码匠社区学习笔记9.3

model、cookie和session的区别 首先说session和cookie因为http协议是无状态的。也就是说,浏览器第一次请求服务器之后,及时很快进行第二次请求。服务器也不知道这次请求时那个浏览器请求的。所以,服务器收到浏览器请求的时候,会留一个session在本地,存储用户信息。服务器响应的时候,会返回一个cookie保存用户信息,存储在浏览器。当再次请求的时候,浏览器会传...

2019-09-03 14:06:32 713

原创 JDK和JRE

JDK JDK(Java Development Kit)是Java 语言的软件开发工具包。它是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 JRE JRE(Java Runtime Environment)JAVA运行环境。没错就是JDK中包含的JVM和JAVA的核心系统类库。JAVA要运行必须要有它。 JDK和JRE的关...

2019-09-03 09:23:29 214

转载 码匠社区学习笔记

th:if标签:先介绍:Thymeleaf1、Thymeleaf 是 Web 和独立环境的现代服务器端 Java 模板引擎,能够处理HTML,XML,JavaScript,CSS 甚至纯文本。2、Thymeleaf 的主要目标是提供一种优雅和高度可维护的创建模板的方式。为了实现这一点,它建立在自然模板的概念上,将其逻辑注入到模板文件中,不会影响模板被用作设计原型。这改善了设计的沟通,弥...

2019-09-02 15:21:08 1693

原创 Introduction to Algorithm Chapter 02 思考题

2-1a).插入排序对长度为k的排序时间为,有n/k部分,所以总的时间复杂度为 b).总共的层数为lg(n/k) + 1,每一层合并的复杂度为,所以总的时间复杂度为n*lg(n/k)c).d).2-2a).A'中的每一个元素都能在A中找到且两个数组中拥有相同的数量。b).我们先看代码: 1 for i = 1 to A.length - 12 ...

2019-01-10 22:12:00 182

原创 Introduction to Algorithm 第二章第三节

2.3-4 其中D(n)为分解问题成子问题所需要的时间C(n)为合并子问题的解成原问题的解 2.3-5伪代码Binary_Search(L, R, A, key) mid = (L + R) / 2 if(A[mid] == key) return mid if(L == R) return false if(A[mid...

2018-11-06 21:01:46 125

原创 hdu 1686

题意:给一个W串和一个T串,问W串在T串中出现了几次?思路:利用KMP,即可方便的找出第一次W串在T串中出现的位置。假设此模式串最后一位是j。next[j],即是在模式串中可以替代j的位置。继续匹配就好。需要注意的是,在生成next数组的时候,不要把w[j]==w[next[j]]的情况直接next[j] = next[next[j]]。  #include<i...

2018-08-26 18:31:09 151

原创 pat 1006 Sign In and Sign Out (25)

题意:给id,这个id的入门时间,出门时间找出最早进的id和最晚走的id思路:没输入一组数据,直接进行比较。比较时间,接着更细时间与id。  #include<cstring>#include<iostream>#include<algorithm>#include<cstdio>#include<string&g...

2018-08-25 15:27:32 136

原创 1005 Spell It Right (20)

无坑点,唯一比较麻烦的是,可能输入有100位。  #include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<string>using namespace std;string str;void output(in...

2018-08-05 12:28:38 133

原创 pat甲 1004 Counting Leaves (30)

题目大意:N代表N个节点。M代表,接下来M行输入。每一行:ID代表父节点,k代表有几个儿子,ID[x]代表儿子是那些。输出关系树每一层的没有儿子的节点数,也就是叶子数。思路:把关系存储起来,找到父节点遍历找每一层叶子数,用数组存储起来输出  #include<iostream>#include<vector>#include<ma...

2018-08-03 12:01:05 158

原创 Introduction to Algorithm 第二章第二节

2-2.1n^3/1000 - 100n^2 - 100n + 3 忽略低阶项,和最重要的项的常系数。结果为Θ(n^3 )2-2.2给出算法的伪代码:SelectionSort(A)n = A.lengthfor i = 0 to n – 2          MIN = A[i]          P = i          for j =i + 1 to n – 1             ...

2018-07-03 15:25:10 245

原创 hdu 7267

题意:对一段序列进行查询和修改。其中有限制条件k。修改i ([a, b])序列时, 要满足 (i - a) % k == 0。换句话说,就是要每k个数后修改。那么我们只需要保证 % k的值相同。#include<cstdio>#include<cstring>const int maxn = 50000 +5;int tree[11][11][maxn], n;in...

2018-02-11 20:08:34 127

原创 hdu 2601

给一个n,求出有多少组i,j满足 n =  i * j + i + j   (0 式子变形 n = i * (j + 1) + j + 1 - 1 = (i + 1) * (j + 1) - 1。 改变一下i,j的取值范围。 n + 1 = i * j (1 接着便可以用暴力找出所有的i( #include#include#includeusing namespace s

2018-02-07 18:45:14 194

原创 hdu 5475

题意:给一个数x和M,要对它进行两种操作。1是乘法,2是除法。1后面接一个数,表示x乘以该数。2后面接一个数y,表述x除以第y步的数。每一次操作后,输出x % M。这个题,数值很大。又有除法。而且要找一种能够把值保存起来,又能方便修改,又能快速查找一段连续序列的乘积。所以,线段树是一个很好的选择。我们把树叶末端(因子),保存为数值。(注意的是,我们一直要取模,所以除法要先把值除掉,

2018-02-03 21:33:41 196

原创 poj 2377

题意:给你一些边,把所有点连起来成树。若能连起来,求出边最大值的和。若不能输出-1;由于给的是边kruskal比prim要方便。-1WA了好几发。#include#includeusing namespace std;const int maxn = 20000 + 10;int pa[1000 + 10];struct node{ int x, y, cost; bo

2018-01-18 21:51:04 189

原创 poj 1258

大意:有一个小镇,镇上有一些农场。用以光纤把所有农场联通,最少需要多少光纤。最小生成树,prim或者kruskal。prim#include#include#includeusing namespace std;const int maxn = 100 + 5;const int inf = 1e9 + 10;int cost[maxn][maxn], mincost[maxn], n

2018-01-18 21:22:28 240

原创 poj 3268

题意:有n个农场,每个农场有一头牛。每个农场都有单向的通道到下一个农场。选择其中一个农场作为开party的农场。他们去了还得回来。每头牛都会选择耗时最短的方案,问这些牛之中,最长的时间是多少。就是求最短路,不过需要注意的是,数据量有点大。dijkstra 的时间复杂度要比floyd下,应优先考虑。#include#include#includeusing namespace std;con

2018-01-18 17:41:43 273

原创 poj 2139

题大意:有n头牛。若果它们之间有m牛拍过电影,那么m头牛之间的距离为一。如果没有一起拍过电影,那么需要通过认识的牛来计算距离。若只需找一头牛,那么距离为 1 + 1= 2.算出某头牛到所有牛的距离之和最短的值,并且除以路径条数(n- 1) 再乘 100。最短路求解#include#includeusing namespace std;const int maxn = 301;int

2018-01-16 18:49:00 240

原创 poj 2236

题意:给你一些电脑,全是坏的。你可以修。他们之间的最长通信距离为d,可以由中间电脑传递信息。一道简单的并查集,唯一比较麻烦的是需要遍历电脑来看它们能否联通,不过此题给的时间够大。#include#include#include#includeusing namespace std;const int maxn = 1001 + 5;int n, d;struct node{

2018-01-15 21:58:24 231

原创 poj 3614

题意:一些奶牛要晒太阳,可是它们需要防晒霜。每头奶牛对防晒霜有一定的要求,SPF值有在MIN 和 MAX之间。给一些防晒霜的SPF和数量问,最多有几头奶牛能够获得想要的防晒霜。怎样选择防晒霜呢。一款SPF尽量小防晒霜,应该给能使用的牛中,Max最小的牛用。因为,我们要的是SPF尽量小的防晒霜,所以之后的SPF都会比这个要大,Max大的牛比小的牛更有机会能使用。对,就是贪心。保持牛的Max尽

2018-01-14 11:13:42 149

原创 hdu 1051

题意:需要处理一些木棍。当处理第一根棍子时,需要 1 的准备时间。若之后处理的棍子,在长度和重量都大于刚刚处理过的棍子。那么不需要准备时间。问:需要最少的时间是多少。我们要计算的是,最小的准备时间。怎样才能使准备时间最小呢?当然是使当前处理的木棍的长度和重量都尽量的小,这样下一根木棍就有更大的可能直接处理。对了,就是贪心。我们可以排序,把木棍的长度和重量排序。这样选择的时候就保证了我们已经在为

2018-01-13 11:22:00 352

原创 poj 3616

题意:有一头奶牛,它有不同的可以挤奶的时间段。且每一个产奶时间段的产量不一样。问,此奶牛的最大产量。我们找的状态是奶牛在时间点 x,所产生的最大奶量dp[x]。那么 dp[x] = max(dp[x], dp[j] + val)。j为之前的节点。若我们能够有序的更新x,那么j节点自然也就是最优解。#include#includeusing namespace std;con

2018-01-12 17:20:55 141

原创 poj 2393

题意:每一周产生牛奶的费用c和需求量y是不同的。牛奶可以保存,但每单元的牛奶保存一周需要费用s,问满足所有需求,最少的费用是多少?我们选牛奶的,看的是费用,费用分为两个,一当前的费用 ,二之前的费用。但是我们可以看成一个。维护的时候,若当前的费用小,则只需保存当前的费用,若之前的费用小,则不管当前费用。意思是:我们永远只维护一个最小值,因为如果牛奶要保存,我们肯定选取的是当前费用里,最

2017-12-19 16:59:03 412

原创 codeforces Educational Round 34 D Almost Difference

题意:给你一个数列,求出求出所有的d(ai, aj) 的和 i和j 满足 1 d(ai, aj) over all pairs (i, j) such that 1 ≤ i ≤ j ≤ n.也就是说,每个数只能向后匹配,不能像前匹配。一个数,它前面有m个数,后面有n 个数,它是会用n + m次的。只不过情况有两种。我们利用map,可以很快找到有那些对于当前数特殊

2017-12-15 23:52:36 129

原创 hdu 1559

一题dp我们要考虑的是如何求出矩阵的值。dp[i][j]表示从第一行,第一列开始,i行,j列的矩阵和。那么dp[i][j] = dp[i - 1][j] + dp[i][j - 1] - dp[i-1][j-1] + num[i][j]。我们更新dp数组时,是从上到下,从左到右一个值,一个值更新的。那么我们dp[i - 1][j] 和dp[i][j - 1]都是早已算出,两个矩阵相加减去公

2017-12-11 21:22:48 227

原创 poj 3190

题意:每头奶牛拥有自己的可以挤奶的时间。且,每头牛都必须挤奶,而他们又不愿意在一间房,问最少需要造多少间房。可以用贪心做,依据开始时间排序。依次放奶牛(开始时间最小),若所有房间都没空,那么就再造一间房。判断房间状态,用for循环会超时,可以使用优先队列,队列排序是房间空的越早越排前。#include#include#includeusing name

2017-12-11 16:45:28 415

原创 hdu 1502

题意:给一个n,求出一个长度为3n,由A,B,C组合而成的字符串的种类数。组合条件:1。字符串中个数:A= B = C2。字符串的任意前缀,数量A >= B >= C。我们可以用动态规划来做,dp[i][j][k]表示,此字符串中A的数量为i,B的数量为j, C的数量为k。那么dp[i][j][k] = dp[i - 1][j][k] + dp[i][j - 1][k] + dp[

2017-12-10 20:23:54 247

原创 poj 2546

题意:牛要打架,给出一些房子及他们的位置,问如何放c头牛使得他们之间的最短距离最大。利用二分法选择最短相距的距离,慢慢逼近最大值。#include#includeusing namespace std;const int maxn = 100000 + 5;int pos[maxn], n, c;bool putcows(int space){ int cnt = 1;

2017-12-10 15:54:53 183

原创 poj 1328

题意:有一条直线,在直线的一端有一些岛屿。问你在直线上放多少雷达能使所有岛屿被覆盖。如果岛屿能被覆盖,那么他们在直线上有两个极限值,刚刚好在这两个点上放雷达能够覆盖对应雷达。那么我们就可以贪心了。依据每个雷达能够接受的最大x排序,从左端开始选取最大x,直到不能满足条件,更新。坑点,雷达半径可为负#include#include#include#includ

2017-12-08 19:08:46 166

原创 hdu 1551

题意:给你n条电缆,分成k截,每截最长是多少?找一个长度,判断它能产生多少截绳子。没错,二分法。需要注意的是,输出的时候要小心四舍五入是不行的。(长度超长,不会产生相应的绳子)#include#include#includeusing namespace std;const int maxn = 10000 + 5;const double eps =

2017-12-07 11:59:40 297

原创 hdu 1513

题意:给你一个长度为n的字符串,求出最少加多少字符才能使成为回文串。我们可以把str1倒过来,得到str2。那么str1和str2的Lcs就是他们之间的最大不需要修改的值。也就是说,那些值原本是不需要动的。只是因为缺少一些必要的字符,只要加上他们str1就和str2相等了。n - LCS的长度,就是缺少的必要字符的值,就是答案。#include#includeusing

2017-12-06 21:46:50 143

原创 hdu 3926

题意:给你n个小朋友,和m个操作。操作就是让两个小朋友手牵手。然后再给n给小朋友,和m个操作。问:他们组成的结构是一样的吗。结构的形状有两种,圈和链。我们需要注意的是,判断他们的结构是否相同,我们可以判断的条件有,结构的类型,圈和链就不一样。然后是大小,这个可以根据人数来判断。这个题可以用并查集来实现。如果他们之间产生了相同的祖先,那么他们形成了圈(注意,只有两种形状)。人数就好判

2017-12-05 21:35:36 278

原创 poj 2376

题意:有n头牛,他们有空的时间段是固定的。有T天,需要打扫T天的谷仓。问:最少需要多少头牛。若不能满足,输出-1明显贪心。需要注意的地方是,第一头牛,打扫了第一天,和第二天,下一头牛应该从第三天开始打扫。以开始时间排序,那么我们只需要一个一个往下找最优解,边找边跟新,当不能满足开始的时间#include#include#includeusing namespace s

2017-12-04 13:34:59 131

原创 poj 3781

题意:给你n个数。求出n个数的规律和(由相邻的数相加,每次减小一个数,直到只剩1个数)。这是杨辉三角的性质。好,接下来的全排列,可以使用STLd的next_permutation。这只比dfs慢一丢丢。#include#include#includeusing namespace std;const int maxn = 15;int n, ans;int yang

2017-12-03 14:52:14 202

原创 usaco Subset Sums

题意:给你一个n,代表有1到n个数。求有多少对字串(假如每个串的和为A,B),A  = B = n个数的和 /  2。我们可以求出所有满足要求的不同的串,串数除以2,便为答案。dp[i][j]表示,前i个数,组成和为j有多少种方法。对于每一个数,我们有两种方案,选,那么dp[i][j] = dp[i - 1][j - num[i]], 不选,那么dp[i][j] = dp[i- 1][

2017-12-02 16:48:12 171

原创 hdu 2818

题意:有N块转, 有两种操作。M x y:把x所在的砖堆放在y所在的砖堆上 C x:输出砖x下面的砖的数量这种一堆,一堆的很明显是并查集,不过带权。那么我们需要考虑,合并时,把x的根作为父节点还是y的根作为父节点。因为是输出每一块砖下面的砖的数量,所以,我们应该以下面为父节点,因为我们需要更新的是上面的砖,而下面的砖的状态是不变的。#include#include#in

2017-12-02 11:14:10 247

原创 poj 2718

题意:给出一些数对这些数进行随意组合,每个数不能重复使用,形成两个数(不能有前导零)A,B。问A,B最小的差。直接dfs,数据不大,最多10个数。但也不能太盲目,两个数的差要小,这两个数的位数就要接近才行。我们就可以缩小搜索深度。就要就能A了。最求一下速度,我们可以剪枝,当搜索第二个数的时候,因为两个数,不可能有相同的数,所以,我们可以在第二个数的后面加零。若大于,则相减就是能得到

2017-11-28 11:34:01 148

空空如也

空空如也

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

TA关注的人

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