随笔分类 -  学科竞赛--算法学习 / 初学算法小结

摘要:鸣人和佐助 描述: 佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置。地图上的每个位置都可以走到,只不过有些位置上有大蛇丸的手下,需要先打败大蛇丸的手下才能到这些位置。鸣人有一定数量的查克拉,每一个单位的查克拉可以打败一个大蛇丸的手下。假设 阅读全文
posted @ 2022-01-27 18:27 次林梦叶 阅读(104) 评论(0) 推荐(0)
摘要:迷宫问题 描述: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着 阅读全文
posted @ 2022-01-26 12:20 次林梦叶 阅读(239) 评论(0) 推荐(0)
摘要:Maze 描述: Acm, a treasure-explorer, is exploring again. This time he is in a special maze, in which there are some doors (at most 5 doors, represented 阅读全文
posted @ 2022-01-20 22:05 次林梦叶 阅读(50) 评论(0) 推荐(0)
摘要:memset函数问题: 函数介绍 编辑 播报 void *memset(void *s, int ch, size_t n); 函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。 memset:作用是在一段内存块中填充某个 阅读全文
posted @ 2022-01-19 17:19 次林梦叶 阅读(37) 评论(0) 推荐(0)
摘要:魅力手镯 描述: 贝西去了购物中心的珠宝店,发现了一个迷人的手镯。当然,她想用N(1)中可能的最佳魅力来填充它≤ N≤ 3402)可用的护身符。所提供列表中的每个咒语都有一个权重Wi(1≤ Wi≤ 400),一个“可取性”因子Di(1≤ Di≤ 100),最多可使用一次。贝西只能支持重量不超过M(1 阅读全文
posted @ 2022-01-17 11:39 次林梦叶 阅读(51) 评论(0) 推荐(0)
摘要:转载一个大佬的文章: 三种动态规划的形式人人为我 状态i的值Fi由若干个值已知的状态值Fk,Fm,..Fy推出,如求和,取最大值1我为人人 状态i的值Fi在被更新(不一定是最终求出)的时候,依据Fi去更新(不一定是最终求出)和状态i相关的其他一些状态的值Fk,Fm,..Fy 注意:在选取最优备选状态 阅读全文
posted @ 2022-01-17 10:04 次林梦叶 阅读(41) 评论(0) 推荐(0)
摘要:向四周判断的动态规划: 滑雪 描述: Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个 阅读全文
posted @ 2022-01-15 18:50 次林梦叶 阅读(42) 评论(0) 推荐(0)
摘要:动态规划的特点: 1.与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。 写动态规划的一般步骤: 1.确定dp数组的定义 以及 dp数组下标的含义: (1)dp数组的定义要满足最优子结构 阅读全文
posted @ 2022-01-04 23:22 次林梦叶 阅读(50) 评论(0) 推荐(0)
摘要:1. 输入: 整个测试有多组数据,请做到文件底结束。每行给出一个数字N,0 <= n <= 250 则我们可以用 while (scanf ("%d",&n) !=EOF){} 或 while (cin>>n) 来输入; 2. 输入: 输入包括多组测试数据。每组数据包括一行,给出两个长度不超过200 阅读全文
posted @ 2022-01-04 23:13 次林梦叶 阅读(48) 评论(0) 推荐(0)
摘要:深度优先搜索大多可以看做在图上遍历和查找; 图的搜索有两种方式,一种是深度优先搜索(Depth-First-Search),另一种是广度优先搜索(Breadth-First-Search); 深度优先搜索(缩写DFS)有点类似广度优先搜索,也是对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始 阅读全文
posted @ 2021-12-23 11:35 次林梦叶 阅读(236) 评论(0) 推荐(0)
摘要:2011 描述: 已知长度最大为200位的正整数n,请求出2011^n的后四位。 输入: 第一行为一个正整数k,代表有k组数据,k<=200接下来的k行,每行都有一个正整数n,n的位数<=200 输出: 每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0 样例输入: 3 5 28 792 阅读全文
posted @ 2021-12-22 23:29 次林梦叶 阅读(75) 评论(0) 推荐(0)
摘要:以下内容转载自一个大佬cutter_point的: 关于分治算法是这样定义的: 为解决一个给定的问题, 算法需要一次或多次的递归调用其自身来解决相关的子问题.即我们把一个大规模的问题划分为n个规模较小的而结构与原来相似的子问题,递归解决这些子问题,然后再合并其结果。这样就得到了最终的结果。 从步骤上 阅读全文
posted @ 2021-12-20 20:53 次林梦叶 阅读(219) 评论(0) 推荐(0)
摘要:分治算法详解 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接: https://blog.csdn.net/effective_coder/article/details/8697789 这位大佬把分治讲的很明白; 接下来是我内容: 对快速排序的理解: (翁恺老师的代 阅读全文
posted @ 2021-12-19 14:37 次林梦叶 阅读(36) 评论(0) 推荐(0)
摘要:更全的常用数学函数:原文链接:https://blog.csdn.net/swy_swy_swy/article/details/105851744 比较常用的: abs()函数函数原型: int abs(int i)功能: 求整数的绝对值labs()函数函数原型:long labs(long i) 阅读全文
posted @ 2021-12-12 15:18 次林梦叶 阅读(149) 评论(0) 推荐(0)
摘要:大部分内容在我的笔记里; 课件上,老师给出了递归的3类使用情境,并举出了相应的事例,分别是: (1)多重循环(递归层数不确定):N皇后问题 (2)本身用递归形式定义的问题:阶乘、波兰表达式 (3)将问题分解成规模更小的子问题:汉诺塔 https://blog.csdn.net/liliangpin/ 阅读全文
posted @ 2021-12-05 16:16 次林梦叶 阅读(52) 评论(0) 推荐(0)
摘要:二分查找不光是查找值; 1.假定一个值判断是否可行, 2.最大值最小化; 3.最小值最大化; 4.最大平均值; 其模型: 求满足f(x)的条件的最大(最小)的x: 1.首先判断f(x)是什么; 2.然后要求满足f(x)的条件的最大(最小)的x,对于任意满足f(x)的x`>=x(x`<=x),可用二分 阅读全文
posted @ 2021-12-03 00:03 次林梦叶 阅读(146) 评论(0) 推荐(0)
摘要:暴力枚举好像十分适用于 需要有限个且不太多的结果 的情况下: 这样我们就可以列有限的for循环逐一枚举全部情况; 如钟表问题: 有9个时钟,排成一个3*3的矩阵。 | | | | | || | | | | | || O | | O | | O || | | | | || | | | | | A B 阅读全文
posted @ 2021-11-25 22:57 次林梦叶 阅读(62) 评论(0) 推荐(0)
摘要:枚举 <1>.枚举适用于: (1)一道题目其没有规律,没有一定的数学公式 ; (2)一道题目其条件一定是在可计算的范围之内的; <2>枚举技巧: (1)枚举不一定是将所有的条件一一去尝试,有一些明显的不可能的条件应舍去,或需要我们经过观察才能舍去的; 例如翁恺老师讲解的生理周期: 人生来就有三个生理 阅读全文
posted @ 2021-11-20 19:46 次林梦叶 阅读(54) 评论(0) 推荐(0)
摘要:了解这道问题我们要知道 位运算; (1)如果我想知道一个二进制数sum的(从右往左数)第i位(从0开始数)为多少(以c表示): c=(sum>>i)&1; (2)如果我想让一个二进制数sum的(从右往左数)第i位(从0开始数)反转: sum^=(1<<i); (异或的特点是:一个位上与1异或会被反转 阅读全文
posted @ 2021-11-20 00:02 次林梦叶 阅读(63) 评论(0) 推荐(0)