- 博客(47)
- 收藏
- 关注
原创 神奇的闹钟(算法题)
小蓝发现了一个神奇的闹钟,从纪元时间(19701970 年 11 月 11 日 00:00:0000:00:00)开始,每经过 xx分钟,这个闹钟便会触发一次闹铃 (纪元时间也会响铃)。这引起了小蓝的兴趣,他想要好好研究下这个闹钟。对于给出的任意一个格式为 уууу-MM-ddHH:mm:ssуууу-MM-ddHH:mm:ss 的时间,小蓝想要知道在这个时间点之前 (包含这个时间点) 的最近的一次闹铃时间是哪个时间?注意,你不必考虑时区问题。
2025-03-25 14:16:48
858
原创 蓝桥杯 -拔河
那么取这两个区间中的非重复段得到的结果必定和两个非重复部分结果相同。那么这两个区间结果值和上面这两个重复区间的结果是相同的。因为如果选中的两个区间重复了那么必定还有两个区间是这两个区间由该重复区间非重复段组成。5},力量值和分别为 10+9+8=2710+9+8=27 , 12+14=2612+14=26,差距为 ∣27−26∣=1∣27−26∣=1。两个队伍的人数不必相同,但是需要让队伍内的同学们的力量值之和尽可能相近。,同时为了避免重复计算,可以用两个指针先遍历出每个区间的值。,为了降低时间复杂度。
2025-03-21 11:25:23
312
原创 css实现居中的几种方式
设置行高后文字会在行高中间显示。下面是css代码,先将父容器字体设置为0(不显示),再将要显示的内容使用span包围,在设置字体大小。下面是css代码,这里设置overflow是因为main是container的第一个孩子,防止塌陷。下面是css代码,这是设置定位为100px,但是实际上可以设置为任意值,即使是0也可以。默认情况下垂直方向参考的是baseline(基线),通过设置参考中部可以实现。下面是css代码,通过设置行高和文字对齐方式实现居中效果。通过设置绝对定位的上下定位同时设置值,实现居中效果。
2024-12-16 10:27:19
2283
原创 android studio导入外部项目
点击ok即可,该操作是修改项目下local.properties中sdk.dir设置,如果先修改就不会提示,不过android studio可以自动检查就没必要手动修改了。这里是为了导入教材的项目,其中该教程代码使用Android studio2019编写,本人使用的是Android studio 2023。只需要修改gradle版本,修改为推荐版本。修改好的agp版本的gradle 版本后如果出现下面对的问题,这是因为gradle版本不匹配。该文件是配置gradle和sdk版本,可以直接手动修改。
2024-10-16 17:06:19
1469
原创 python使用base加密解密
base编码是一种加密解密措施,目前常用的有base16、base32和base64。其大致原理比较简单。以base64为例,base64加密后共有64中字符。其加密过程是编码后将每3个字节作为一组,这样每组就有3*8=24位。将每6位作为一个单位进行编码(2**6=64,这样就恰好每个值都对应了一个字符)。举个例子:将字符ABC进行base64加密010000010100001001000011010000010100001001000011QUJD。
2024-05-24 09:40:16
476
1
原创 多模态EDA论文小记
该论文主要改进点是:通过动态化局部搜索中每个集群大小,高斯和柯西分布共同产生个体。总的来说改进点不多,当然也可能是笔者还没发现。
2024-05-08 21:24:19
805
原创 pandas快速使用
Dateframe结构和列表类似,区别是对于DataFrame的每一列和每一行均有一个标签。例如以下数据,上述数据中,日期作为每行的标签。a、b、c、d、e分别是每列的标签。
2024-05-08 16:16:03
454
原创 python中numpy库使用
其中dtype定义的是元素类型,np.int32指32位的整形如果直接定义dtype=int 默认的是32位整形。zeors。
2024-05-07 19:58:59
823
原创 python解决前后端交互跨域问题
在测试前后端交互时,前后端设备在同一局域网信息交互无法收到信息。但是测试连通性时ping完全可以接收,并且使用浏览器也可以正常访问。经过查询发现是跨域问题。只需要将发送的数据头添加。
2024-04-28 15:15:02
384
原创 烦恼的高考志愿(洛谷)
这里一个大学可以被多个学生填报,因此方法就是找到一个分数线自身分数最相同的学校。因此这里就是在一个数组中搜索到一个和比给定数最接近的数。位学生的估分情况,分别给每位学生推荐一所学校,要求学校的预计分数线和学生的估分相差最小(可高可低,毕竟是估分嘛),这个最小值为不满意度。神太忙了,身后还有一群小姑娘等着和他约会,于是他想到了同为计算机竞赛小组的你,请你帮他完成这个艰巨的任务。计算机竞赛小组的神牛 V 神终于结束了高考,然而作为班长的他还不能闲下来,班主任老 t。输出一行,为最小的不满度之和。
2024-03-21 17:24:40
571
原创 填涂颜色(洛谷)
由数字0组成的方阵中,有一任意形状的由数字1构成的闭合圈。现要求把闭合圈内的所有空间都填写成2。6×6的方阵(n6),涂色前和涂色后的方阵如下:如果从某个0出发,只向上下左右4个方向移动且仅经过其他0的情况下,无法到达方阵的边界,就认为这个0。闭合圈不一定是环形的,可以是任意形状,但保证的0是连通的(两两之间可以相互到达)。对于100%的数据,1≤n≤30。
2024-03-13 15:55:07
874
原创 c++ 常用的STL
写这篇博客目的是为了记录在刷算法题中使用过的STL,因为有些不太常用的会遗忘。因此这篇博客只是作为笔记,不是详细的STL。此外在后面用到新的STL内容时会再补充。
2024-03-08 21:56:05
2218
原创 c++ set集合按位置(索引)查询元素的方法
在STL中集合好处是可以对输入的元素进行排序,就是说在某些情况下对某些需要有序的元素可以使用set集合存储。不过在set集合没有提供按值查询的方法。在集合中,set集合不允许出现重复元素,使用multiset集合可以存储重复元素。
2024-03-08 20:19:23
1450
原创 滑动窗口
在队列中元素都是在给定区间的。因此如果新加入的元素大于队尾元素,那么该队尾元素肯定不是当前区间和接下来区间的最大值,因为新加入的元素已经是当前区间的成员了而且新加入元素索引大于队尾元素也不会是接来下一段区间的最值。如果其值优于队尾元素,那么队尾元素肯定不是当前和接下来一段区间的最值,那么该元素就不能被输出,因此队尾元素需要出队。如果该元素是当前区间的最值,那么队列会全部出队,新的元素会成为新的队首。扫描数组时,如果该元素大于队尾元素(取最大值时)将该队尾元素出队,直到队尾元素大小小于该元素停止出队。
2024-03-04 17:14:50
383
原创 小狗哥哥(洛谷)
做法是对于目标值建立一个区间,每次数据输入的时候对这个区间进行更新维护。更新最大值和原来最大值和当前最大值里小的哪个(更新最小值与之相反)。,最终如果最大值没有被更新还是原始的赋值,说明这里的答案有无限个。| $m,a_i\leq $ | 特殊性质 | | :-: | :-: |:-😐:-😐。但谁能想到 luanmenglei 有一个悲伤的过去,他五岁的弟弟叫他小狗哥哥。luanmenglei 有一个辉煌的现在:他们班的女同学都叫他易酱。对于等级的提高只需要对应的将分母乘当前等级,因为当前等级攻击力等于。
2024-02-28 16:34:25
1020
1
原创 创建spring项目报错:read time out
发现只要取消这个选择就可以正常下载。(版本是202202)在新电脑使用idea创建spring项目时,提示。下载完成后再次创建勾上也没事。
2024-02-26 16:03:14
873
原创 语文成绩(洛谷)
例如新数组第一个元素和第二个元素相加,第二个元素是第二个和第一个元素的差值,这个差值加上第一个元素原数组第一个元素很明显就是等于第二元素本身,而新数组里第一个元素和原数组第一个元素恰好相等。而新数组第一个和第二个元素相加等于原第二元素,这样第一二三个元素相加就是等于原数组第三个元素。在上面例子中如果在第二个位置减去1,那么根据前缀和计算出来的第二个元素会比原数组小1,而第三个元素也需要加上第二个元素,也就是说第三个元素也会比原数组第三个元素小于1.如果后面还有元素又会继续小1。,代表各个学生的初始成绩。
2024-02-22 19:53:18
964
原创 最大加权矩阵(洛谷)
这里是将列提前处理了,再进行dp,具体是哪几列压缩后得到的最大字段和才是最大的,我们并不清楚。同理也可以对行预处理思路是类似的就是将矩阵压缩为10个一列的数组,再对列求最大字段和。再用一个矩阵区间和减去另几个区间和就可以得到中间区域的区域和。如此遍历,找到最大的区间和。认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没有马上答应他们,而是先给她们出了一道数学题,并且告诉她们:你们能获得的运动场地的面积就是你们能找到的这个最大的数字。
2024-02-20 16:29:03
1235
原创 求区间和(洛谷)
包含了第a项,而我们求的需要包含第a项,因此不能减掉该项。数组存储数列前n 项和。,这时候明显区间[a,b]之和等于。行,每行为两个正整数。第一行,为一个正整数。第三行,为一个正整数。
2024-02-19 09:00:27
1330
原创 pytorch入门笔记二
torch.nn.Sequential是一个容器,利用此容器可以快速简单的搭建一个简单的神经网络。这里以搭建一个三层神经网络为例。首先该容器的参数分别是上一层到下一层的权重、激活函数,以此循环。这里torch提供快速生成网络权重的方法:torch.nn.Linear(input,output)参数表示的分别是输入节点数和输出节点数。方法会根据输入输出节点数自动初始化一个权重矩阵。这里以输入节点数为10输出节点数为1为例输出结果为:因此这里的权重可以直接使用Linear()方法随机生成。
2024-02-18 20:12:09
827
原创 摆花(洛谷)
每遍历一种花时都要从1开始遍历放这种花的个数,在可以放下的前提下,放一盆这种花的方法数等于有m-1个空位数时摆放的方法数。同理放两盆此花方法数等于有m-2个空位数时摆放的方法数.一直遍历到这种花最大可摆放数量。则有这种花的可摆数等于上述方法数相加。同理需要在店外摆放m种花的方法数等于遍历这几种花得到方法数相加。盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共。试编程计算,一共有多少种不同的摆花方案。
2024-02-17 10:47:16
872
原创 过河卒(洛谷)
如果棋子想要到达点(i,j),这里只有两点可以到达,分别是(i-1,j)和(i,j-1)。因此到达(i,j)路径数等于到达(i-1,j)和(i,j-1)的路径数之和(当然还要考虑边界情况和马的控制点),以此循环就是dp思路了。不过使用dfs的思路更简单,因此我这里使用的是记忆搜索dfs。点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。,同样马的位置坐标是需要给出的。一个整数,表示所有的路径条数。现在要求你计算出卒从。
2024-02-12 09:34:57
1109
原创 5倍经验日(洛谷)
同时还需要注意的是,如果剩余药水数量小于挑战该好友需要的药水数,则需要直接加上挑战失败的药水数(因为就算失败也可以增加经验)。如果当前的药水大于或者等于挑战成功需要的药水时,首先需要判断是否要将药水使用,如果选择使用就加上胜利的经验值,如果不使用就加上失败的经验值。悲剧的是,用药量没达到最少打败该人所需的属性药药量,则打这个人必输。个好友,给定失败时可获得的经验、胜利时可获得的经验,打败他至少需要的药量。五倍经验活动的时候,absi2011 总是吃体力药水而不是这种属性药。一个整数,最多获得的经验的五倍。
2024-02-10 21:18:42
923
1
原创 最大字段和(洛谷)
我们可以使用一个数组存储这个子序列(由于我们不关心子序列是什么,只关心子序列之和的大小。这个数组就是我们的dp数组,对于dp[i]意义是在以第i个元素结尾的子序列中,最大的子序列之和。对于第数字3显然如果和前面序列1合并成一个新序列,会比3单独成一个序列大该序列为。此时我们在上述序列中找到最大的一个序列就是我们想找的最大子序列。对于数字2显然前面序列和是正数和前面序列结合可以形成一个较大的序列该序列是。对于数字2如何和-1结合成一个序列小于自己单独成一个序列序列为。第一行是一个整数,表示序列的长度。
2024-02-09 14:57:45
1013
1
原创 pytorch入门第一天
今天作为入门pytorch的第一天。打算记录每天学习pytorch的一些理解和笔记,以用来后面回顾。当然如果能帮到和我一样的初学者,那也是不胜荣幸。作为一名初学者,难免有些地方会现错误,欢迎各位大佬指出。
2024-02-08 20:26:37
974
原创 装箱问题(洛谷)
从这里可以看出计算大箱子时只需要用到小箱子数据,而且只会用到前一行的小箱子数据,因此根据这个原理只需要在遍历箱子大小时候,从后往前遍历就可以直接使用一维数组完成这个过程,无需使用二维数组。需要使剩下的空间经可能低,也就是需要经可能使得装进去的物品体积之和经可能大。个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。这里的最终结果就是右下角值5,我们只要使程序做到这个表格的效果即可得到最终结果。行,每行有一个正整数,表示第。NOIP 2001 普及组第四题。个物品,每个物品有一个体积。
2024-02-08 09:38:26
1028
原创 滑雪(洛谷)
这里数据最大是100*100的矩阵,直接dfs递归肯定会超时,所以要用记忆搜索。主函数里遍历每个点作为初始点然后找到路径最长的初始点。再dfs(这里的dfs函数名是fun)中遍历每个方向(上下左右)记录最大路径,并把路径长度记录在一个数组中,再次遇到需要经过该点时直接返回记录的路劲长度。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。后面看了一下动态规划思路,实际上和记忆搜索差不多,先对这些点进行排序。数组的每个数字代表点的高度。事实上,这是最长的一条。
2024-02-07 10:14:49
881
1
原创 高低位交换(洛谷)
这里的注意点是数据大小范围是32位,和int型相同,不过int型还有一bit是用来存储符号的,即使输入值小于int可存储范围,移位置后也可能出现一些问题。例如一个二进制数的第16位是1,移动后符号位就变成一个负数标识,最后读出的数就成了一个负数,并且由于负数的存储是采用补码形式最后结果会相差十万八千里。根据题目所述,将一个十进制的数转化为二进制,并更改二进制数的位置得到一个新的十进制数。将它的高低位交换,我们可以得到一个新的数。将它的高低位进行交换,我们得到了一个新的二进制数。位的二进制数表示(不足。
2024-02-06 16:54:15
1032
1
原创 通过langchain框架实现模型联网搜索
这几天快过年了,所以玩点其他东西放松一下。langchain框架时目前比较流行的一个大模型框架,该框架提供了大量组件,这些组件可以实现不同的功能。其中有agent组件,通过该组件可以实现调用大模型接口联网搜索。
2024-02-05 20:58:03
5182
1
原创 挖地雷(洛谷)
例如示例中第三行第一列是1表示第一个可以去第二个,根据生活常识第一个能去第二个那第二个也可以去第一个,但是在本题中第二个不能去第一个。个地窖,每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径。当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。理解完题目,本题我的思路是使用dfs,由于后面无法到达前面的地窖需要记忆搜索。第一行表示挖得最多地雷时的挖地雷的顺序,各地窖序号间以一个空格分隔,不得有多余的空格。
2024-02-04 11:10:56
1124
1
原创 C++内存泄漏SIGSEGV (Segmentation fault)
起因是写一道算法题时,将一个较大数组放在main函数内。只要一运行就提示程序停止运行,调试显示的是SIGSEGV (Segmentation fault)错误,也就是内存泄漏。以下是报错代码。调试后发现就算是把断点设置在main函数中的第一行,也还是提示运行错误。
2024-02-03 09:50:17
683
1
原创 查找(洛谷)
(假设索引从1开始)根据上面的方法,左点修改为中心值1,其原值就是1,也就是说没有更新,这样就会陷入一个死循环。正确的方法是如果中点值小于目标值,就把左点更新为中点加1.而右边不需要因为这里是小数部分被舍弃,也就是实际值大于该值,而右边不会。正确的做法是当一个目标值小于或等于中点时,将右点赋值为中间位置(为什么不是将等于条件放在目标值大于等于中点时,因为上面说了如果目标值大于中点值的时候将左值赋值为中点加一,这样会导致越过目标值)结束的条件就是左点小于右点。个整数,表示询问这些数字的编号,从。
2024-02-02 20:09:28
396
原创 银行贷款(洛谷)
由于每月都会还款,因此公式是不太好写出来的。暴力遍历由于这里精确到的是0.1,也就是说从要从0.1遍历到300,并且加上还要验证该解是否可行。这里采用的是一个笨办法:如果利率卡一个数超过一定次数就认为这个数是近似解。当一个人从银行贷款后,在一段时间内他(她)将不得不每月偿还固定的分期付款。这个问题要求计算出贷款者向银行支付的利率。需要注意的是题目中说精确到0.1是因为无法计算出准确值。总之这里模拟还钱后即使是正确的利率最终金额也不是0,一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到。
2024-02-02 09:52:57
1011
原创 数的计算(洛谷)
这里另一个点是数据量,众所周知单纯的递归会有大量重复计算,计算量较大。由于这里的参数有两个,因此可以使用一个二维数组存储计算过了的数,如果该数已经计算就直接返回,不再重复计算。(这里有两个参数,一开始没转过来没想到用二维,因为之前一直用的是一维存储。给定一个序列进行搜索,每次递归除了相应的值作为参数传入,还有上一次选择元素的索引也作为参数传入。并且本次遍历时开始元素是传入的上一次元素的索引的下一个位置。因为该索引前的元素在较早的时候就搜索过了(如果结果中不考虑顺序的话)。(可以有相同的数字,每个数字均在。
2024-02-01 16:03:00
365
1
原创 数的计算(洛谷)
这里还需要考虑的一种请况是对于给定尾数的数列,可以不向数列尾添加数。因此合法数列的个数还要加1,因此对于一个数列结尾是n的数列,合法数列个数是。在一个合法的数列的末尾加入一个正整数,但是这个正整数不能超过该数列最后一项的一半。此处又有 f(n/2)=f(1)+f(2)+ff(3)+…这样可以知道,每个数列实际有用的数就是最后一位。,前面的数是什么和组成数列的个数没有关系。合法数列个数就是以1~n/2的整数结尾时合法个数相加。请你求出,一共有多少个合法的数列。输出一行一个整数,表示合法的数列个数。
2024-02-01 15:42:40
1079
1
空空如也
python遇到MemoryError
2023-07-19
关于二叉树线索化的疑问
2023-04-23
多重背包遇到的问题,找了好久没找到原因
2023-03-26
c语言写链表遇到问题
2023-03-05
python正则匹配返回不全
2022-10-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人