- 博客(82)
- 收藏
- 关注
原创 软件架构初探
软件层次结构是面向实体的,他最底层是实体类,实体类中封装了对象的抽象数据类型(数据结构和对数据结构的基本操作)。然后向上一层数据处理层提供接口,数据处理层利用模型层提供的对象和基本操作进一步进行算法的的操作,对实体对象进行更加复杂的操作,然后向上一层业务逻辑层提供接口。业务逻辑层其实同时调用了模型层的数据类型和数据处理层的复杂数据操作方法,最终实现业务逻辑。
2024-06-08 21:05:40 167
原创 Spring Boot学习
把两个数据源的配置分开,方便配置管理在编程的时候要判断此时在操纵哪个数据源配置方式:1、完全手工配置2、和SpringBoot结合在一起在DataSource上面配置@Primary注释的Bean如果两个数据源相同重要也可以使用SpringBooot自动配置。
2023-12-15 15:47:08 635
原创 Spring Boot 请求/actuator/beans 无法访问 返回404
SpringBoot测试过程中访问/actuator/beans报错
2023-11-09 23:02:02 1833
原创 操作系统实验1
硬件:IA-32架构的计算机软件:Bochs、gcc、IDE、Linux0.11源代码、Ubuntu、hit-oslab 集成环境*PS:Bochs 是一个免费且开放源代码的 IA-32(x86)架构PC 机模拟器。VMware 或者 Microsoft Virtual PC是最著名虚拟机软件hit-oslab 已经内置了 bochsBoch官网GCC 是和 Linux 一起成长起来的编译器。Linux 最初的版本就是由 GCC 编译的。
2023-09-24 23:29:33 218
原创 高精度乘法
#include<iostream>#include<algorithm>#include<vector>#include<string.h>using namespace std;// 字符串倒置函数void reserve(char *a){ int i = 0; int j = strlen(a)-1; while(i < j){ char temp = a[i];
2022-04-16 22:03:21 464
原创 信息熵、条件熵、信息增益、基尼指数的python实现
手动编写计算信息熵、条件熵、信息增益、基尼指数的函数data = pd.read_excel('customer.xlsx', engine='openpyxl')# 信息熵# data -> 数据框 D -> 指定变量# 返回指定变量对应的信息熵def H(data, D): pk = pd.value_counts(data[D])/len(data[D]) return sum(pk*np.log2(pk)*(-1))# 条件熵# data -> 数
2022-04-15 20:21:46 1300
原创 Pollard Rho质因数分解的编程实现
Pollard Rho因数分解(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n, 重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。这个问题循环执行了上边的三个步骤,因此可以把上面三个步骤抽象成一个函数,重复调用递归思路:先分解出n中最小的质因子k能整除:输出因子k,继续分解n/k中的因子k不能整除:分解n中的下一个因子k+1当n==k时
2022-04-10 20:35:18 352
原创 处理因移动Python文件位置导致pip命令报错
报错内容Fatal error in launcher: Unable to create process using '"c:\users\???\appdata\local\programs\python\python37-32\python.exe" "D:\Python\Python37-32\Scripts\pip.exe" install jieba': ???????????解决:更新pipcmd运行如下命令python -m pip install --upgrade pip
2022-04-08 21:02:13 1224
原创 Python中的字符串格式化
# 字符串格式化name = "董付国"score = 90result1 = "在考试中%s的成绩为%s" % (name, score)print(result1)result2 = "在考试中{1}的成绩为{0}".format(score, name)print(result2)result3 = f"在考试中{name}的成绩为{score}"print(result3)...
2022-04-08 09:02:27 581
原创 3.1循环与递归
数列求和Sn = Sn-1 + (-1)n+1/(2n-1)!#include<iostream>#include<algorithm>using namespace std;int main(){ int t = 1; float A = 1; float sum = 1; int n; printf("输入n:"); cin >> n; for(int i = 2; i &l.
2022-03-27 20:51:26 229
原创 DOS命令相关
打开CMD的几种方式1)从开始菜单找到Windows系统——命令提示符2)按住win键+R键,再输入cmd运行3)在资源管理器中的任意文件路径下,在地址栏最前端加入cmd+空格,转到相应文件路径常用的DOS命令1)盘符切换:D:2)查看当前目录下的所有文件:dir3)切换目录:cd+文件名(change directory)4)返回上一级目录:cd…5)清空屏幕:cls(clean screen)6)查看电脑IP:ipconfig7)打开计算器:calc,画图:mspaint,记事本.
2021-07-14 19:07:25 97
原创 SpringMVC.xml配置问题
加载注释的处理映射器和处理适配器<mvc:annotation-driven />加载视图解析器<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlV.
2021-06-30 20:26:09 128
原创 最短路——大胖子走迷宫
题目:大胖子走迷宫小明是个大胖子,或者说是个大大胖子,如果说正常人占用 1×1 的面积,小明要占用 5×5 的面积。由于小明太胖了,所以他行动起来很不方便。当玩一些游戏时,小明相比小伙伴就吃亏很多。小明的朋友们制定了一个计划,帮助小明减肥。计划的主要内容是带小明玩一些游戏,让小明在游戏中运动消耗脂肪。走迷宫是计划中的重要环节。朋友们设计了一个迷宫,迷宫可以看成是一个由 n×n 个方阵组成的方阵,正常人每次占用方阵中 1×1 的区域,而小明要占用 5×5 的区域。小明的位置定义为小明最正中的一
2021-04-15 22:54:39 277
原创 动态规划——包子凑数
题目:包子凑数小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有 N 种蒸笼,其中第 i 种蒸笼恰好能放 Ai 个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买 X 个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有 X 个包子。比如一共有 3 种蒸笼,分别能放 3、4 和 5 个包子。当顾客想买 11 个包子时,大叔就会选 2 笼 3 个的再加 1 笼 5 个的(也可能选出 1 笼 3 个的再加 2 笼 4 个的)。当然有时包子大叔无论如何也凑不出顾
2021-04-12 22:15:53 228
原创 动态规划——整数划分
题目:在火影忍者的世界里,令敌人捉摸不透是非常关键的。我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例子。影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造出的影分身越强。针对不同的作战情况,鸣人可以选择制造出各种强度的影分身,有的用来佯攻,有的用来发起致命一击。那么问题来了,假设鸣人的查克拉能量为 M,他影分身的个数最多为 N,那么制造影分身时有多少种不同的分配方法?注意:影分身可以分配0点能量。分配方案不考虑顺序,例如:M=7,N=3,那么 (2,2,3
2021-04-12 12:59:30 184
原创 九数算式
题目:九数算式观察如下的算式:9213 x 85674 = 789314562左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。而乘积恰好也是用到了1~9的所有数字,并且每个1次。请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个?注意:总数目包含题目给出的那个示例。乘数和被乘数交换后作为同一方案来看待。#include<iostream>#include<algorithm>#include<cstdio>#inclu
2021-04-07 22:59:31 274
原创 画中漂流
题目:画中漂流在梦境中,你踏上了一只木筏,在江上漂流。根据对当地的了解,你知道在你下游 D 米处有一个峡谷,如果你向下游前进大于等于 D 米则必死无疑。现在你打响了急救电话,T 秒后救援队会到达并将你救上岸。水流速度是 1 米/秒,你现在有 M 点体力。每消耗一点体力,你可以划一秒桨使船向上游前进 1 米,否则会向下游前进 1 米(水流)。M 点体力需在救援队赶来前花光。因为江面太宽了,凭借你自己的力量不可能上岸。请问,有多少种划桨的方案可以让你得救。两个划桨方案不同是指:存在某一秒钟,一
2021-04-05 15:02:15 347 1
原创 翻转单词顺序
题目:翻转单词顺序输入一个英文句子,单词之前用一个空格隔开,且句首和句尾没有多余空格。翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student. a am I"。样例输入:“I am a student.”输出:“student. a am I”解题思路:将整个字符串翻转简单,直接利用库函数就行。那么就可以把过程分成两步,先整体翻转一次,再把每个局部整体翻转一次。先把整个字符串全部翻转,
2021-03-29 11:52:26 157
原创 表达式求值——递归解法
题目:表达式求值给定一个表达式,其中运算符仅包含 +,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。注意:数据保证给定的表达式合法。题目保证符号 - 只作为减号出现,不会作为负号出现,例如,-1+2,(2+2)*(-(1+1)+2) 之类表达式均不会出现。题目保证表达式中所有数字均为正整数。题目保证表达式在中间计算过程以及结果中,均不超过 231−1。题目中的整除是指向 0 取整,也就是说对于大于 0 的结果向下取整,例如 5/3=1,对于小于 0 的结果向上取整,例如
2021-03-28 21:56:54 387
原创 第几个幸运数字
题目:第几个幸运数字到x星球旅行的游客都被发给一个整数,作为游客编号。x星的国王有个怪癖,他只喜欢数字3,5和7。国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。我们来看前10个幸运数字是:3 5 7 9 15 21 25 27 35 45因而第11个幸运数字是:49小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。请你帮小明计算一下,59084709587505是第几个幸运数字。解题思路:序
2021-03-25 22:21:32 315
原创 方格计数
题目:方格计数如图所示,在二维平面上有无数个1x1的小方格。我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。你能计算出这个圆里有多少个完整的小方格吗?解题思路:由于对称性,把整个圆分成四个象限,计算出一个象限中圆内包含的格子数,乘以4就是答案以第一象限为例,按照每个格子的右上角计数,枚举所有格子的右上角。因为只要一个格子的右上角在圆内,那么这个方格就一定在圆中。#include<iostream>#include<algorithm>#inc..
2021-03-25 18:14:02 685
原创 线性DP——特定长度的上升子序列个数
题目:给定长度的上升子序列个数问题描述 给定一个序列 (a_1, a_2, …, a_n), 它的一个上升子序列是指从序列中取出一些元素,按照原来的顺序排列后,是单调递增的序列。 例如,对于序列 (3, 2, 7, 6, 7),取出下标为 2, 4, 5 的元素 a_2, a_4, a_5,即 2, 6, 7,是一个上升子序列。 在这个序列中,有 7 个长度为 2 的上升子序列,例如 1. 下标 1, 3 对应的 3, 7; 2. 下标 1, 4 对应的 3, 6; 3. 下标 1
2021-03-21 11:40:11 1250 1
原创 蓝桥杯——外卖店的优先级
题目:外卖店的优先级“饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓存中。输入格式第一行包含 3 个整
2021-03-18 15:24:57 275
原创 基础练习题解
1.矩形相交面积问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式 输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式 输出仅包含一个实数,为交的面积,保留到小数后两位。样例输入1 1 3 32 2 4 4样例输出1.00题目分析:此题是一道利用程序解决简单数学问题的题目,重点是如何对所
2021-03-01 21:51:36 172
原创 2018年蓝桥杯C++B组测试次数——DP打表详解
一、题目:测试次数x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。如果到了塔的最高层第n层
2021-02-24 13:13:43 443
原创 常用数学知识
一、两个数不能凑出来的最大的数1.这两个数不互质,只要不是这两个数最大公约数的倍数的数都凑不出2.这两个数互质,不能凑出的最大的数是:a * b - a - b二、上取整公式 (a + b - 1)/b证明:1. 当a%b = 1,2,3,4,5…,b-1时(a + b - 1)%b = b,b+1, b+2, b+3, …, b+b-22.当a%b = 0时(a + b - 1)%b = b - 1...
2021-02-19 15:49:48 864
原创 贪心——区间问题
一、区间选点给定N个闭区间[ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。输入格式第一行包含整数N,表示区间数。接下来N行,每行包含两个整数ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需的点的最小数量。数据范围1≤N≤105,−109≤ai≤bi≤109输入样例:3-1 12 43 5输出样例:2#include<iostream>#include&
2021-02-17 10:30:15 125
原创 贪心大法
一、贪心的本质贪心其实是通过求局部最优解从而找到整体最优解的思想,其应该属于运筹学的一种,通常也通过抽象出函数模型求最值的方法。二、例题1.股票买卖给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。输入格式第一行包含整数 N,表示数组长度。第二行包含 N 个不大于 10000 的正整数,表示完整的数
2021-02-16 19:19:56 187
原创 搜索与图论——求一个图的直径
一、思路从任意一点出发,找到离该点距离最大的点,即为直径的一个端点。然后再从这个点出发,找到离这个点距离最大的点。这两个点的距离即为直径。二、例题:大臣的旅费很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。
2021-02-15 15:40:44 2899
原创 交换排序问题
题目:小朋友排队n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是 0。如果某个小朋友第一次被要求交换,则他的不高兴程度增加 1,如果第二次要求他交换,则他的不高兴程度增加 2(即不高兴程度为 3),依次类推。当要求某个小朋友第 k 次交换时,他的不高兴程度增加 k。请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。如果有两个小朋友身高一样,则他们谁站在谁前
2021-02-04 17:06:26 1463
原创 数据结构——树状数组与线段树
树状数组基本介绍本质:用一维数组模拟一棵树用途:在O(logn)时间内对一段序列进行以下两种操作1)给某个位置上的数加上一个数2)求某个前缀和核心方程:tr[x] = (x - lowbit(x), x]即tr[x] = 原数组下标为 (x - lowbit(x), x] 之间的区间和两个功能对应的代码://给某个位置上的数加上一个数cfor(int i = x; i <= N; i += lowbit(i)) tr[i] += c; //其中N是数组的最大值//
2021-02-03 11:34:48 203 1
原创 前缀和的应用
1.题目:k倍区间给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?输入格式第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 Ai。输出格式输出一个整数,代表 K 倍区间的数目。数据范围1≤N,K≤100000,1≤Ai≤100000输入样例:5 212345输出样例:6解题思路:题目要求求所给区间的
2021-01-24 18:20:25 364
原创 动态规划——记忆化搜索
记忆化搜索顾名思义是在搜索的过程中通过记录搜索的中间状态从而达到减少重复搜索的方法,通常用在搜索树中出现重复子节点的情况。例题:滑雪给定一个R行C列的矩阵,表示一个矩形网格滑雪场。矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。下面给出一个矩阵作为例子:1 2 3 4 516 17 18 19 6.
2021-01-21 15:24:04 170
原创 动态规划——树形DP
例题: 没有上司的舞会Ural大学有N名职员,编号为1~N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数N。接下来N行,第 i 行表示 i 号职员的快乐指数Hi。接下来N-1行,每行输入一对整数L, K,表示K是L的直接上司
2021-01-20 18:45:48 140
原创 二进制的妙用
表示某个元素是否在集合中因为二进制每一位只有0和1两种情况,所以二进制每一位可以对应某个元素是否在这个集合中。整个二进制数就构成了一个集合,对应二进制位为1的元素就在集合中,为0的就不在集合中。表示对一个集合的每一个元素是否进行某种操作整个二进制数表示对一个集合整体进行的某种操作,对应二进制位为1的元素表示对该元素进行了某种操作,为0的表示没有对该元素进行某种操作。利用二进制与整数一一对应的性质,就可以利用循环,把原本指数型的枚举变成线性。...
2021-01-17 14:46:54 453
原创 C++中常用到的函数
全排列函数next_permutation函数,其函数原型为:#include < algorithm >bool next_permutation(iterator start,iterator end)返回值:当当前序列不存在下一个排列时,函数返回false,否则返回true作用: next_permutation(num,num+n)函数是对数组num中的前n个元素进行全排列,同时并改变num数组的值。注意: next_permutation在使用前需要对欲排列数组按升序排..
2021-01-12 20:53:58 507
原创 Web前端相关技巧
目录主流使用的清除浮动的3种方法主流使用的清除浮动的3种方法1)对父级设置适合的CSS高度2)用clear:both清除浮动3)父级div定义 overflow:hidden
2021-01-12 09:53:33 118
原创 动态规划——状态压缩DP
一、状态压缩DP概念状态压缩DP是用二进制数表示一个集合(即状态),然后进行状态转移例题:蒙德里安的梦想求把N* M的棋盘分割成若干个1*2的的长方形,有多少种方案。例如当N=2,M=4时,共有5种方案。当N=2,M=3时,共有3种方案。如下图所示:输入格式输入包含多组测试用例。每组测试用例占一行,包含两个整数N和M。当输入用例N=0,M=0时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个结果,每个结果占一行。数据范围1≤N,M≤11输入样例:1 21
2021-01-10 20:27:08 194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人