自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 判断是否是闰年

首先我们要知道,年的概念,是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是很遗憾的是这个周期并不能被一天的时间整除,真正的一年其实是365.2423天(目前)。所以,如果每年定义为365天的话,1年就会多出0.2423天,4年就会多出0.9692天,非常接近1天,这样闰年就出现了,也就是每4年要有1年设置为366天,来抵消这多出的1天。这样每400年里设置了97个闰年,误差被调整到400年仅有0.08天,而设置规则也并不是很麻烦,所以一直沿用了下来。

2025-03-09 16:15:52 178

原创 云GPU——pycharm远程连接featurize实例

2、虚拟环境创建好之后,下载需要的包 (这种方法比较快)会有详细的教程, 本文补充虚拟环境的创建以及包的下载。

2024-11-25 15:31:05 467

原创 分糖果(随机分配)

允许有些人没有被分到糖果(即分到的糖果数为。颗相同的糖果,现在需要把糖果分给。请问共有多少种不同的分法?

2024-11-15 00:00:00 231

原创 分糖果(相等分配)

分给每个人糖果的数量必须是相等的,并且每个人只能选择一种糖果。也就是说,可以把一种糖果分给多个人,但是一个人的糖果不能有多种。请问每个人最多能分到几个糖果?种不同口味的糖果,第。,现在需要把糖果分给。

2024-11-15 00:00:00 361

原创 分糖果(条件分配)

个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?老师想给孩子们分发糖果,有。可以分别给这三个孩子分发。

2024-11-15 00:00:00 259

原创 计算机网络思维导图——第4章 网络层

2024-11-14 09:57:57 180

原创 求集合的子集

【代码】求集合的子集。

2024-11-09 16:51:38 95

原创 while()与string::length()的使用错误

原因就是 s.length()返回的unsigned int,不能和signed int直接进行比较。当j==-1时,发现while()循环进不去了!

2024-11-09 14:18:11 157

原创 动态迷宫(回溯法)

比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向,再过一分钟它又回到了竖直方向。蒜头君发现对他来说很难找到能使得他最快到达目的地的路线,这时聪明的蒜头君便想到了万能的你,来解决这个问题。注意:蒜头君只能每次走到相邻的格子而不能斜走,每移动一次恰好为一分钟,并且蒜头君登上楼梯并经过楼梯到达对面的整个过程只需要一分钟,蒜头君从来不在楼梯上停留。,地图中不会出现两个相连的梯子。表示的楼梯在一开始是水平方向。输出一个整数,表示到达目标的最短时间。表示的楼梯在最开始是竖直方向,

2024-11-08 21:36:01 356

原创 最小正整数(贪心)

行,每一行表示一组测试数据,每组测试数据包含两个数字。,求生成的新整数最小为多少?行,每行一个数字,表示从。给定一个十进制正整数。,每个数位上数字均不为。位后得到的最小整数。

2024-11-08 20:50:06 174

原创 宠物小精灵之收服(动态规划)

对于每一个野生小精灵而言,小智可能需要使用很多个精灵球才能收服它,而在收服过程中,野生小精灵也会对皮卡丘造成一定的伤害(从而减少皮卡丘的体力)。如果小智选择了收服,那么一定会扔出能够收服该小精灵的精灵球,而皮卡丘也一定会受到相应的伤害;现在已知小智的精灵球数量和皮卡丘的初始体力,已知每一个小精灵需要的用于收服的精灵球数目和它在被收服过程中会对皮卡丘造成的伤害数目。行,每一行代表一个野生小精灵,包括两个整数:收服该小精灵需要的精灵球的数量,以及收服过程中对皮卡丘造成的伤害。的野生小精灵也不会被小智收服。

2024-11-08 19:56:20 347

原创 派(分治法)

个朋友会来参加我的派对,每个人会拿到一块派(必须一个派的一块,不能由几个派的小块拼成;我的朋友们都特别小气,如果有人拿到更大的一块,就会开始抱怨。因此所有人拿到的派是同样大小的(但不需要是同样形状的),虽然这样有些派会被浪费,但总比搞砸整个派对好。当然,我也要给自己留一块,而这一块也要和其他人的同样大小。蒜头君的生日要到了!输出每个人能得到的最大的派的体积,精确到小数点后三位。之间的整数,表示每个派的半径。,表示派的数量和朋友的数量。个不同口味、不同大小的派。,半径不等的圆柱体。第一行包含两个正整数。

2024-11-08 19:24:50 535

原创 静态迷宫 判断是否能走出去

其中 ‘S’ 表示蒜头君的位置,’*‘表示墙,蒜头君无法通过,’.‘表示路,蒜头君可以通过’.'移动,'T’表示迷宫的出口(蒜头君每次只能移动到四个与他相邻的位置——上,下,左,右)。一天蒜头君掉进了一个迷宫里面,蒜头君想逃出去,可怜的蒜头君连迷宫是否有能逃出去的路都不知道。看在蒜头君这么可怜的份上,就请聪明的你告诉蒜头君是否有可以逃出去的路。输出一个字符串,如果蒜头君可以逃出迷宫输出"yes",否则输出"no"。第一行输入两个整数 n和 m,表示这是一个 n×m 的迷宫。

2024-11-08 19:18:00 512

原创 至少需要几驾飞机

题目:已知每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈。问题:为使至少一驾飞机绕地球一圈回到起飞时的飞机场,至少需要出动几驾飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)。思路:一驾飞机自己能飞半圈,且辅助飞机可以从两个方向出发,因此只需要考虑让目标飞机在1/4处满油即可。如果只有一驾辅助飞机,最多能让目标飞机在1/6处满油。假设为A、B、C,其中飞机A绕地球飞一圈,B、C为辅助飞机。

2024-11-05 09:54:09 147

原创 找众数(可能有多个)

使用分治法找出所有的众数,首先将输入元素从小到大进行排序,然后找到与a[mid]相等的数的范围a[mid_l..mid_r]。如果l~mid_l的长度大于等于mid_l~mid_r的长度,需要在l~mid_l范围内继续找,如果mid_r~r的长度大于等于mid_l~mid_r的长度,需要在mid_r~r中继续找。:使用sort()对输入序列从小到大进行排序,找到与a[mid]相等的数的范围a[mid_l..mid_r],然后进行判断(因为可能有多个众数,所以是。

2024-11-04 11:16:18 1028

原创 最小“不重复数”(相邻两位不相等)

题目:设定N是一个正整数,求比N大的最小“不重复数”,这里的不重复是指没有两个相等的相邻位,如1102中的11是相等的两个相邻位,故不是不重复数,而12301是不重复数。:考虑到N可能很大,所以使用字符串来接收输入。要求比N大的最小不重复数,需要从N+1开始。编写函数判断高精度数是否是重复数,以及实现高精度数加1。

2024-11-04 10:20:07 456

原创 大数阶乘求末尾0的个数

在阶乘的计算中,偶数(含有因数2)的出现频率显然高于5的倍数的出现频率。1~n个数中,每隔5,出现一个质因数含5的数,即n/5(需要向下取整)个,分别是5,10,15,20,:用一个一维数组a存放阶乘值,将阶乘值的个位数存放于数组的最后一个元素a[N]中,十位数放在a[N-1]中,最高位放在a[1]中。初始值应该为1,即a[N]=1,a[1..N-1]=0。这n/5个数中,例如25、50、75中不止一个5,有两个5,也是每隔5出现一个,共有(n/5)÷5个……×n所得数的末尾有多少个0。

2024-11-03 17:14:28 516

原创 判断是否是变位词

直接简单地统计两个单词的各个字母的次数,需要两个长度为52的数组(区分字母大小写),来存放各自的字母出现次数,并且统计好了之后还需要比较这两个数组是否相同。题目:给定两个单词,判断这两个单词是否是变位词。如果两个单词的字母完全相同,只是位置有所不同,则称这两个单词为变位词。只需要一个数组,存放的是两个单词的字母出现次数的差,差为0,证明是字母出现的次数一样。(注意,具体实现还需要考虑字母大小写):判断是否为变位词,只需要分别统计两个单词的各个字母的次数,如果各个字母出现的次数一样,即为变位词。

2024-11-03 16:06:38 331

原创 一次快排拆成两个表

题目:设表A={a1,a2,…,an},将A拆成B和C两个表,使A中值大于等于0的元素存入表B中,值小于0的元素存入表C中,要求表B和C不另外设置存储空间而利用表A的空间。:首先将A表中的第一个元素存到变量a中,把第一个元素置为0,进行一趟快速排序。然后,将0变成原来的a。如果a小于0,则归到C表中,a大于等于0,归到B表中。:值小于某个数的在左边,值大于某个数的在右边,和快排十分类似。因此,如果第一个数为0,第一趟快排的结果就是左边的值都小于0,右边的都大于等于0。

2024-11-03 15:50:28 213

原创 去重(要求移动次数较少,相对次序不变)

利用指针j,指向当前没有重复元素数组的最后一个元素,即R[0]~R[j]中的元素都不重复。因此,j刚开始指向R[0]。从R[1]开始遍历数组继续寻找与R[0]~R[j]不重复的元素。题目:设计算法,在数组R[n]中删除重复的元素,要求移动元素的次数较少,并使剩下元素间的相对次序保持不变。如果在找到重复数字后,将后面的数全部前移覆盖掉该重复数字,需要大量的移动次数。对于重复出现的数字,j保持不变。然后i++,继续访问下一个元素。

2024-11-03 15:03:07 222

原创 单链表相加

先用头插法创建单链表(目的是为了将加数逆序),然后用两个指针分别指向两个单链表,直到有一个单链表遍历完,再把另一个剩下的部分放到结果单链表中,需要注意的是,不能直接照搬,可能会有进位,甚至需要再创建一个结点(因为结果的长度最大为max(s1,s2)+1)。最后,将结果单链表逆序(使用头插法建立答案单链表),打印输出即可。设两个加数的长度分别为s1,s2,最后的和的长度s最大可以取到max(s1,s2)+1。得到的和也是逆序的,因此最后需要将。题目:用单向链表表示十进制数,求两个正整数的和。

2024-11-02 21:24:19 344

原创 升序数组两两不相等

复杂度分析:最坏时间复杂度为O(n):可能每次a[mid]都等于mid+1,此时需要遍历整个数组;平均时间复杂度为O(logn):平均情况下,T(n)=T(n/2)+O(1);空间复杂度为O(logn):递归调用的深度为logn。题目:给定一个排好升序的数组A[1],A[2],…一个升序且值都不相等的数组,如果第一个数大于右下标(数组最后一个数的下标),或最后一个数小于左下标,则这个数组里一定没有满足题意的数。复杂度分析:最坏时间复杂度为O(n),平均时间复杂度为O(n);空间复杂度为O(logn)。

2024-11-02 20:44:53 304

原创 最大公因数和最小公倍数

【代码】最大公因数和最小公倍数。

2024-11-02 19:59:49 145

原创 动态规划使用最少张数的货币找钱

思路:当只用面值为s[1], s[2],…问题:设有n种不同面值的货币,存于数组s[1..n]中。现用这些货币来找钱,各种货币使用的个数不限。C[i][j]=min(C[i][j-s[i]]+1,C[i-1][j]),当j>=s[i]C[i][j]=0x3f3f3f3f,当i=0,j!C[i][j]=C[i-1][j],当j

2024-10-24 11:21:44 214

原创 插入加号使数字串表达式最小

问题:有一个由数字1,2,3……,9组成的数字串(长度不超过500),问如何将M(1

2024-10-24 08:55:40 283

原创 100层楼两个玻璃球找临界楼层所需要的次数

max(i,1+F[n-i])表示第一次从第i层楼扔,如果碎了,临界楼层一定在1~i层,但是现在只有一个玻璃球了,所以只能从1楼一层层往上找,直到i-1层。如果没碎,临界楼层一定在i+1~n层,共有n-i层,因为现在有两个玻璃球,所以和只有一个球那样找,有两个玻璃球找的次数为F[n-i],加上第一次扔的1次,共1+F[n-i]次。对于第n层楼,F[n]=min(max(1,1+F[n-1]),max(2,1+F[n-1]),max(3,1+F[n-3]),…,max(n-1,1+F[1]))。

2024-10-23 21:09:33 504

原创 动态规划数塔问题

题目:从数塔顶层到底层或从底层到顶层,在每一个结点可以选择向左走或是向右走,要求找出一条路径,使路径上的数值和最大。考虑从顶到底,需要在叶子结点中找最大和。而从底到顶,最大和一定为dp[1][1]。dp[i][j]表示在第i层第j个位置上的最大和。

2024-10-23 17:23:07 273

原创 动态规划矩阵连乘

2、递归方法(用二维数组m[i][j]记录已经算过的course(i,j))题目:n个矩阵连乘,求最小的计算次数。Mi矩阵维度为r[i]×r[i+1]。1、递归方法(有大量的重复计算)

2024-10-23 16:08:57 357

原创 动态规划求数值和最小路径

首先对dp[i][j]进行初始化,显然,dp[0][0]=a[0][0],第一行:dp[0][j]=dp[0][j-1]+a[0][j],因为点(0,j)只能由(0,j-1)向右走得到。:求在(i,j)处的最小路径长度,只需要取(i-1,j),(i,j-1)和(i-1,j-1)中的最小值,然后加上点(i,j)的值即可。因为对于(i,j)点,只有三种情况能到达该点,即从(i-1,j)向下走,(i,j-1)向右走,(i-1,j-1)向斜向下走。因此,最后所求为dp[n-1][m-1]。

2024-10-23 09:55:32 257

原创 穿越沙漠问题

思路:从终点往前推。距离终点500km应有一个加油站,油量为500L,这样当吉普车到达该加油站时,能直接到达终点,并且油刚好用完(吉普车达到该加油站时也正好用完之前的油)。然后思考第2个加油站,从刚刚的加油站往前推,吉普车要运500L的油放在第1个加油站,必然需要来回运,至少需要走3段路。要想让这段路尽量长,就要多耗油,最多能耗500L油,500L油能走500km,每段走500/3km,所以,第2个加油站的油量为500L+500L(运到第1个加油站的油量+路上耗油),距离终点500km+500/3km……

2024-10-18 20:08:09 447

原创 找出n个自然数(1,2,3,……,n)中取r个数的组合。

题目:找出n个自然数(1,2,3,……,n)中取r个数的组合。

2024-10-08 08:30:35 503

原创 2的幂次方表示

例如:137=2^7+2^3+2^0,同时约定几次方用括号来表示,即a^b可表示为a(b),由此可知,137表示为:2(7)+2(3)+2(0),进一步:7=2(2)+2+2(0)(2^1用2表示)3=2+2(0)。输出:符合约定的n的0,2表示(在表示中不能有空格)题目:任何一个正整数都可以用2的幂次方表示。的2次幂写法,因此所求即为t(n,0)。然后,t(n/2,r+1)等价于。输入:正整数(n<=2000)

2024-10-08 08:10:25 519

原创 双递归摆动数列

通过递归可以求得a[i]的值,对于前n项和,直接的做法是从1到n遍历,再求和。但是这样会重复地算同一个数的a[i]值,因为递归的时候就可能已经求过a[i]了。因此,优化方法如下:建立一个。,下一次求a[i]只需要时先判断A[i]是否等于0(初始化为0,正常情况a[i]不会为0),如果不是0,就可以直接用。i为正整数,试建立递归,求该数列的第n项与前n项的和。题目:递归求解双递推摆动数列。

2024-10-08 07:45:31 83

原创 整数划分问题

思路:P(n,m)表示:整数n,划分的最大值为m,共有P(n,m)种划分方法。思路:从1到max选择一个数,以该数为最大值进行划分,找到一个划分结果。题目1:求整数划分个数。

2024-10-07 14:56:58 398

原创 汉诺塔问题

题目:开始时A座上有n个盘子,大的在下,小的在上。3个基座上始终保持大盘在下,小盘在上,现需把n个盘子从A座移到B座,通过C座辅助。

2024-10-07 13:57:20 244

原创 求矩阵的鞍点

代码:(多个最小值认为第一个为最小,更严谨的代码在最后)题目:求一个矩阵的鞍点,即行上最小而列上最大的元素。

2024-10-07 13:31:28 496

原创 求1000以内的完数

题目:一个数如果恰好等于他的因子之和(包括1,但不包括这个数),这个数就是完数。编写算法找出1000之内的所有完数,并按下面格式输出其因子:28 it's factors are 1,2,4,7,14。

2024-10-07 11:16:51 176

原创 优化阶乘求和

思路:循环n次,每次求每一项的值,并加起来,求每一项的值需要求阶乘,而阶乘的时间复杂度为O(n),所有总的时间复杂度为O(n^2)。优化:求每一项的值不需要求阶乘。可以发现,第i项等于前一项除以(2i-1)(2i-2)。以上算法的时间复杂度为O(n)。

2024-10-07 10:57:45 269

原创 单链表逆序

题目:将不带头结点的单链表逆序。

2024-10-03 17:06:01 178

原创 打印规律图形

上图所示:1的坐标为(1,1),因为i=1,j=1时为1。10的坐标为(4,1),对应放在数组的a[4][1]1的坐标为(1,1),对应放在数组的a[1][1]2的坐标为(1,2),对应放在数组的a[2][2]3的坐标为(1,3),对应放在数组的a[3][3]4的坐标为(1,4),对应放在数组的a[4][4]5的坐标为(2,1),对应放在数组的a[2][1]6的坐标为(2,2),对应放在数组的a[3][2]8的坐标为(3,1),对应放在数组的a[3][1]9的坐标为(3,2),对应放在数组的a[4][2]

2024-09-24 20:57:13 306

空空如也

空空如也

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

TA关注的人

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