草庐IT

RSA算法

全部标签

c++ - 带二维数组的 Dijkstra 算法

在过去的几天里,我一直在尝试实现这个算法。到目前为止,我已经设法制作了一个动态二维数组并插入节点之间的距离,一个删除节点之间路径的函数和一个告诉我两个节点之间是否存在路径的函数。现在我想实现一个返回从节点A到节点B的最短路径的函数。我知道dijkstras算法是如何工作的,我已经阅读了wiki上的伪代码,但我自己无法编写任何代码。我真的被困在这里了。我一直在考虑代码应该是什么样子以及应该发生什么,这就是为什么我制作了一个函数来告诉我两个节点之间是否有路径。我是否需要更多的帮助功能来简化dijkstras的实现?目前我只有3个节点,但我想编写的代码通常需要在n个节点上工作。感谢任何形式的

c++ - 改进极小极大算法

目前我正在使用C++开发黑白棋/黑白棋游戏。我已经“完成”了它,只是当我将它设置为产生半具有挑战性的AI的深度时,我用于计算机播放器的Minimax算法非常慢。我的游戏的基本设置是棋盘由二维数组表示,棋盘上的每个单元格都在数组中分配一个值(xMarker,oMarker,或下划线)。这是目前为止的minimax算法:signedintComputer::simulate(Boardb,intdepth,inttempMarker){if(depth>MAX_DEPTH||b.gameOver()){intoppMarker=(marker==xMarker)?oMarker:xMark

【算法练习】leetcode算法题合集之动态规划篇

普通动规系列LeetCode343.整数拆分LeetCode343.整数拆分将10的结果存在索引为10的位置上,需要保证数组长度是n+1,索引的最大值是n,索引是从0开始的。n的拆分,可以拆分为i和n-i,当然i可以继续拆分。而且拆分为n-1和1的结果和n-2和2的结果的大小也是不一定的。classSolution{publicintintegerBreak(intn){int[]dp=newint[n+1];for(inti=2;in;i++){intmax=0;for(intj=1;ji;j++){max=Math.max(max,Math.max(dp[i-j]*j,(i-j)*j));

【LeetCode】142. 环形链表 II(中等)——代码随想录算法训练营Day04

题目链接:142.环形链表II题目描述给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从0开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例1:输入:head=[3,2,0,-4],pos=1输出:返回索引为1的链表节点解释:链表中有一个环,其尾部连接到第二个节点。 示例 2:输入:head

【C++】STL 算法 - transform 变换算法 ② ( 变换规则为 普通函数 | 变换规则为 Lambda 表达式 | 变换规则为 函数对象 | 变换规则为 函数适配器转换的函数对象 )

文章目录一、transform算法1、接收一个输入容器范围的transform算法函数原型2、代码示例-传入接受一个参数的普通函数3、代码示例-传入接受一个参数的Lambda表达式4、代码示例-传入接受一个一元函数对象作为变换规则5、代码示例-传入接受一个STL中预定义的一元函数对象作为变换规则6、代码示例-传入接受一个使用函数适配器将预定义二元函数对象转成的一元函数对象7、代码示例-将变换结果输出到标准输出流中一、transform算法1、接收一个输入容器范围的transform算法函数原型transform算法函数原型:下面的函数原型作用是将一个输入容器中的元素变换后存储到输出容器中;te

毕业设计:YOLOv8车牌识别系统 深度学习 LPRNet算法 pytorch 大数据 (源码)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅1、项目介绍技术栈:Python3.8YOLOv8深度学习LPRNet算法pytorch项目介绍:基于YOLOv8+LPRNet进行车牌检测及识别,包括对车辆的车牌区域精确定位,利用校正探测器对定位的车牌进行边框校正处理,使用增强神经网络模型对车牌区域进行超分辨率技术处理和光学字符识别。经过多次试验测试,可以对视频中的车辆车牌实时识

2024年寒假算法班集训day03-知识总结及题解(递推)

概念:递推算法,又称为迭代算法,它的基本思想是将问题分解成一系列相似的子问题,通过解决较简单的子问题,逐步求解原问题。它通常用于数列、结构的构建、路径的发现等场景。在实现递推算法时,我们首先需要定义初始状态,即最基本的、不依赖于其他部分的部分。然后,我们确定递推关系,即当前状态如何由前一或多个状态推导得来。最后,要考虑算法的终止条件,即在什么情况下停止递推。例如,斐波那契数列中每一项的值是前两项之和,这就是一个典型的递推关系。在编程中,我们可以从第三项开始,迭代计算后续每一项的值,直到达到我们想要的序列长度。通过递推,我们可以有效解决问题,并减少不必要的计算,从而提高算法效率。在讨论递推算法时

c++ - 涉及STL排序算法的令人困惑的SegFault

我正在尝试使用STL重新创建编程明珠第15栏中的程序。我正在尝试使用字符串和索引vector创建后缀数组。我将我读取的单词列表记录在一个名为input的字符串中,该字符串充当我在程序开头从stdin读取的以''分隔的单词列表。在我到达代码的排序部分之前,一切都按预期工作。我想使用STL的排序算法,但我对我似乎正在创建的段错误感到完全困惑。我有:vectorwords;和全局变量stringinput;我定义了我的自定义比较函数:boolwordncompare(unsignedintf,unsignedints){intn=2;while(((f当我运行代码时:sort(words.b

BM25(Best Matching 25)算法基本思想

  BM25(BestMatching25)是一种用于信息检索(InformationRetrieval)和文本挖掘的算法,它被广泛应用于搜索引擎和相关领域。BM25基于TF-IDF(TermFrequency-InverseDocumentFrequency)的思想,但对其进行了改进以考虑文档的长度等因素。一.基本思想  以下是BM25算法的基本思想:TF-IDF的改进:BM25通过对文档中的每个词项引入饱和函数(saturationfunction)和文档长度因子,改进了TF-IDF的计算。饱和函数:在BM25中,对于词项的出现次数(TF),引入了一个饱和函数来调整其权重。这是为了防止某个

算法学习03 动态规划-背包问题

背包问题01背包问题(每件物品最多只能用一次)#includeusingnamespacestd;constintN=1005;intv[N];//体积intw[N];//价值intf[N][N];//f[i][j],j体积下前i个物品的最大价值intmain(){intn,m;cin>>n>>m;for(inti=1;i>v[i]>>w[i];for(inti=1;i作者:深蓝链接:https://www.acwing.com/solution/content/1374/来源:AcWing将状态f[i][j]优化到一维f[j],实际上只需要做一个等价变形。为什么可以这样变形呢?我们定义的状态