
愚公搬算法
文章平均质量分 85
以算法实战总结经验,提升思维。
清风莫追
我独自走在,郊外的小路上,我把糕点带给外婆尝一尝……
展开
-
CCF CSP 201612-1 中间数(c++)
ccf-csp的一道小题原创 2024-10-18 06:00:00 · 365 阅读 · 1 评论 -
【小赛1】蓝桥杯双周赛第5场(小白)思路回顾
学习脱节:从实践出发,又要从基础出发。本期赛题(6道):1、十二生肖2、欢迎参加福建省大学生程序设计竞赛3、匹配二元组的数量4、元素交换5、下棋的贝贝6、方程:快速幂算法,矩阵快速幂。原创 2024-02-13 20:59:59 · 1406 阅读 · 5 评论 -
蓝桥杯准备
一件事情刚刚开始时,最常见的问题就是无从下手,于是乱学一通,学得一盘散沙,意兴阑珊,甚至产生自我怀疑。不如看看别人怎么做,一步一个脚印,收获不会少的。蓝桥杯的赛制是oi赛制,就是交上去不知道结果,可以重复提交,取最后一次为结果,按测试点给分。由易而难,我打算先试试MOOC上郭炜老师的课程,跟着写一些题。再找找合适的周赛,以对自己的水平和学习效果有一定的把握。原创 2024-01-14 21:44:37 · 1727 阅读 · 1 评论 -
【算法】期末复盘,酒店住宿问题——勿向思想僵化前进
省流:一个人也可以住双人间,如果便宜的话。害!尚正值青春年华,黄金岁月,小脑瓜子就已经不灵光咯。好在我在考试的最后一分钟还是成功通过了这题,真刺激。原创 2023-03-05 19:46:28 · 1000 阅读 · 2 评论 -
【力扣】423.从英文中重建数字
给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)。按 升序 返回原始的数字。我发现重建单词可以分为三个批次,分别是{two, four, six, eight, zero},{one, three, five, seven}, {nine},如果按照这样的批次顺序去重建单词,上述两个问题就消失了,而同批次的单词之间重建顺序可以是任意的。第一批次中的单词都至少有一个字母是它在这10个单词中独有的,如果这独有的字母还没用完,那必然是还要继续重建那独自占有它的单词。原创 2022-12-16 12:30:52 · 844 阅读 · 24 评论 -
校acm新生赛笔记
作为一名已经大二的老学长,我依然坚持参加了今天的校ACM新生赛。原创 2022-12-11 22:56:24 · 802 阅读 · 25 评论 -
【力扣篇一】数组30道题汇总
力扣,数组三十题。原创 2022-12-10 07:30:00 · 1254 阅读 · 25 评论 -
【算法 | 实验18】在字符矩阵中查找给定字符串的所有匹配项
在字符矩阵中查找给定字符串的所有匹配项给定一个M×N字符矩阵,以及一个字符串S,找到在矩阵中所有可能的连续字符组成的S的次数。所谓的连续字符,是指一个字符可以和位于其上下左右,左上左下,右上右下8个方向的字符组成字符串。用回溯法求解。bug记录:“error: ‘>>’ should be ‘> >’ within a nested template argument list”“错误:”>>“在嵌套模板参数列表中应为”> >”原创 2022-11-17 20:10:22 · 2841 阅读 · 37 评论 -
【算法】提取字符串序列
给定一个字符串,请将其中的所有数字串提取,并将每个数字串作为整数看待(假设可以用int 表示),按从小到大顺序输出结果,输出的整数之间以逗号间隔。如果没有数字,则输出0;例如:*1234.345#6781ad9jk81-11101?在一行内输入一串符号,长度不大于300。输入数据保证提取的整数不超过10^9。函数。我们主要需要解决的问题就是第1步了。原创 2022-11-17 10:23:16 · 756 阅读 · 2 评论 -
【算法】网络最大流问题,三次尝试以失败告终
网络流中的最大流问题;关于”反悔“机制基本思路的理解;深度优先和广度优先(最短增广路径)的尝试;数组越界和写错变量名的bug记录;源代码。原创 2022-11-05 07:00:00 · 1093 阅读 · 5 评论 -
【算法】优先队列式分支限界法,以01背包问题为例
介绍分支限界的基本思路,并着重讨论了“如何选择上界函数”的问题,附完整C++代码。分支限界法类似于广度优先搜索,可使用队列实现,但进行了一些优化。优先队列式分支限界法:每次算完限界后,把搜索树上当前所有叶结点的限界进行比较。找出限界最优的结点,此结点即为下次分支的结点。优先队列的一个意义在于,总是搜索当前看起来最优的结点,因此更有可能更快地找到最优解。此外,它可以帮助进行上界的更新。原创 2022-10-24 07:00:00 · 12740 阅读 · 19 评论 -
【算法 | 实验6-1】n*n的网格,从左上角开始到右下角结束遍历所有的方块仅一次,总共有多少种不同的遍历路径
对于如图7×7的网格,从左上角开始到右下角结束遍历所有的方块仅一次,总共有多少种不同的遍历路径?剪枝。原创 2022-10-19 07:00:00 · 1670 阅读 · 10 评论 -
【算法 | 实验7】以最小的步骤收集所有硬币(算法正确性还没想清楚)
题目:有许多相邻排列的硬币堆。我们需要以最少的步骤收集所有这些硬币,在一个步骤中,我们可以收集一个水平线的硬币或垂直线的硬币,收集的硬币应该是连续的。疑问:以最小的步骤收集所有硬币,如何证明该分治算法的正确性?原创 2022-10-18 07:00:00 · 1196 阅读 · 40 评论 -
【算法 | 实验8】分配最小页数(数组划分和最大值最小化问题)
暴力+二分,思路+实现。题目:给定n本书的页数,m名学生。这些书按页数的**升序**排列成一个序列。每个学生都被分配去读一些**序列中连续的书**。设分配给第i个学生的书籍的总页数为Pi,1原创 2022-10-10 18:41:38 · 1791 阅读 · 45 评论 -
算法 |【实验5.2】1-深度优先搜索暴力求解旅行商问题
商品推销员要去n个城市推销商品,城市从1至n编号,任意两个城市间有一定距离,该推销员从城市1出发,需要经过所有城市并回到城市1,求最短总路径长度。原创 2022-09-29 11:16:52 · 1680 阅读 · 10 评论 -
算法 |【实验5.3】:一元三次方程的根-连续区间的二分搜索求近似解
文中讨论了在对实数区间的搜索中,要小心浮点数存储方式的影响,以及如何判断一个区间是否值得继续搜索的问题。有形如:ax^3+bx^2+cx+d=0ax 3 +bx 2 +cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。原创 2022-09-20 23:36:21 · 1406 阅读 · 35 评论 -
【算法作业】实验五:神奇宝贝大军 & 到迷宫出口的最短路径
接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符’.‘表示空地,’#'表示墙,'S’表示起点,'T’表示出口。当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。自己举几个例子就能发现,不取极值点的情况,总可以用取了极值点的情况来替代同时获得更大的军队力量。的思路,不过为了提高算法的效率,可以在搜索的过程中。输入第二行n个不同的整数,表示神奇宝贝的力量。原创 2022-09-18 19:12:26 · 724 阅读 · 13 评论 -
【算法作业】实验四:逆波兰表达式求值 & Fibonacci数列的尾递归与非递归程序
每个操作符将需要两个操作数,可以为表达式构建一颗递归树,每个操作数可能就是表达式中的一个数字,也可能要由一个子表达式(递归就来了)计算得到。这里的递归写法时间开销要比非递归大一些(即使不考虑递归操作本身的原因),因为会存在重复计算。掌握递归的基本语法和思想,利用递归程序实现逆波兰表达式,并分析算法复杂度。的方法来实现(虽然也用到了栈,但仅仅是为了从尾部开始读取字符而已)。由于我是从表达式的尾部开始读取字符,而减法、除法运算并不满足。主要是学会可递归问题的多种写法。,其中 n 为输入表达式的。原创 2022-09-17 23:34:11 · 924 阅读 · 8 评论 -
【算法作业】实验三:划分集合-贪心 & 可能的IP地址-回溯
给定一组整数(它可以包含相等的元素)。你必须把它分成两个子集A和B(它们都可以包含相等的元素或是空的)。你必须使mex(A)+mex(B)的值最大化。这里集合的mex表示集合中不存在的最小非负整数。给定一个只包含数字的字符串,通过返回所有可能的有效IP地址组合来恢复该字符串。有效的IP地址必须采用A.B.C.D的形式,其中A、B、C和D是0-255之间的数字。除非数字为0,否则不能以0作为前缀。原创 2022-09-16 23:28:32 · 838 阅读 · 16 评论 -
【算法作业】实验二:给立方体排序的小明&&同时整除的数
我这里是每读取一组测试数据,就输出一个结果。这和读完所有数据后在开始输出结果的效果其实是一样的。,很容易想到冒泡排序的算法。我们只需要在冒泡排序的过程中记录需要交换的次数即可。但显然,对于3、5、7的输出与否,都是可以单独判断的,因此我这里尝试的是。语句进行判断,这样思路会很简单而清晰。,该时间复杂度应该还是可以接受的。可以每一个种输出结果都使用一个。算法的时间复杂度即为。原创 2022-09-12 17:00:17 · 473 阅读 · 29 评论 -
【算法作业】实验一:轮流报数与鸡兔同笼
轮流报数和鸡兔同笼问题1. 有5个人A,B,C,D,E玩一个游戏,规则如下:从1开始5人轮流报数,如果遇到7的倍数或者含有7的数字则跳过.当报完N个数后(不包括跳过的数)结束游戏。统计游戏中每个人各跳过了几个数。2. 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。原创 2022-09-07 19:39:41 · 718 阅读 · 11 评论 -
二维容器进行图的DFS搜索和BFS搜索-C++STL模板
使用以优先队列为元素的容器表示图,在此基础上进行图的深度优先和广度优先遍历,占用内存空间少且时间效率高。原创 2022-06-24 22:03:49 · 940 阅读 · 44 评论 -
表达式转换-中缀转后缀表达式后计算-数据结构与算法
一个计算中缀表达式的算法题题目链接:表达式转换-洛谷我查了(ASCII 13)是回车键,但是我又能过四个测试集,为什么输出会有回车键的问题呢?谁能救救我啊?万分感谢!下面是我的代码(可能有点乱,抱歉):程序运行:............原创 2022-06-23 20:44:42 · 2133 阅读 · 20 评论 -
计算后缀表达式-算法与数据结构-栈的运用-C++语言实现
以前一直计算机能够计算一个表达式是一件神奇的事情,原来用栈就能实现一个简单后缀表达式的计算!原创 2022-06-21 16:22:07 · 1232 阅读 · 21 评论 -
合并两个有序单链表,对象析构这一着我实在没想到。
合并两个有序单链表,我真是又菜又爱飘,谁知道函数一结束我的实例副本析构会导致其它的实例也寄了。原创 2022-06-14 09:24:01 · 600 阅读 · 20 评论 -
【数独 2】候选数法解数独谜题-挖掘更深的信息-C++实现
不回溯,C++编程实现候选数法解数独谜题,增加了两个进阶解法——区块摒除和数对法,使原模型的能力得到了很大的提升。原创 2022-06-28 23:44:37 · 1658 阅读 · 42 评论 -
【数独 1】不回溯,试试候选数法1ms高效解数独谜题-C++实现
编程解数独最常用的方法是回溯法,然而这里介绍一种高效的方法——候选数法来供大家参考。几乎可以在1ms内解决一个数独谜题。原创 2022-06-23 08:00:00 · 2047 阅读 · 21 评论