![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
文章平均质量分 50
啊轰同学
这个作者很懒,什么都没留下…
展开
-
算法第三周 B : 幂运算(快速幂运算)
B : 幂运算给你三个整数a,b,p,求a^bmodp的值第一行是一个整数t,表示t组数据。接下来的n行,每行有3个整数,分别表示a, b, pt ≤ 2 * 105,a > 0, b > 0, p ≥ 2,原创 2023-03-29 23:42:25 · 205 阅读 · 0 评论 -
算法第三周 : 很大的数组的第k小(快速排序)
很大的数组的第k小,每组数据给出n m k表示有n个数,求第k小,数组的数字由以下规则得到:i = mimod (109+7), i = 1, 2, ..., n其中1 ≤ n, m ≤ 5 × 107,1 ≤ k ≤ n,数据保证得到的数组元素大部分互不相等。原创 2023-03-29 23:24:37 · 723 阅读 · 0 评论 -
算法分析:芯片测试问题(分治算法)
了,初始的想法的将这一堆芯片2个2个分为一组,每组测试一次,根据测试报告的结果,淘汰一部分芯片,剩下的芯片构成一个规模更小的子问题进行第二轮测试。测试方法的描述:将2⽚芯⽚(A和B)置于测试台上,互相进⾏测试,测试报告是“好”或“坏”,只取其⼀。好芯⽚的报告⼀定是正确的,坏芯⽚的报告是不确定的(可能会出错)。,现在的任务是通过测试从这一堆芯片中挑选出1片好芯片。为了能够用最少的测试次数找出好芯片,我们可以考虑用分治算法,不断缩小问题的规模。那么我们应该采取什么样的规则,使得每轮淘汰的坏芯片数目。原创 2023-03-27 19:41:52 · 721 阅读 · 0 评论 -
迷宫问题(DFS方法)
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。一个5 × 5的二维数组,表示一个迷宫。左上角到右下角的最短路径,格式如样例所示。原创 2023-03-22 16:44:33 · 677 阅读 · 1 评论 -
算法第二周 F : 区间和
什么是前缀和:一个数组:a[1],a[2],a[3]…a[n],前缀和S[i]表示的是该数组的前i项的和,例如S[3] = a[1] + a[2] + a[3],S[i] = a[1] + a[2] + a[3] + …+ a[i - 1] + a[i].题目问题其实很简单,就是给你一个数组,左右下标L和R,求数组在区间[L,R]上的和,使用前缀和可以简化时间复杂度。,之后给出M次询问,每次询问包含两个数字L和R。对于每次询问,求出L和R之间所有数(包括L和R本身)之和。行,每行1个自然数,即数列中。原创 2023-03-15 11:17:00 · 108 阅读 · 0 评论 -
算法第二周 C : 数的计算
当n=6,满足条件的序列为{6},{1, 6},{2, 6},{1, 2, 6},{3, 6},{1, 3, 6}在6的左边,第一次添加的数字可以是1、2、3 (即1->n/2)则dp[6]=dp[1]+dp[2]+dp[3]+1,进而得到状态转移方程。将第一次添加的数字i以及后续的数字视为一组:dp[i]请问通过这样的规则,可以构造出多少个不同的序列。给定一个初始序列,序列中仅包含一个元素。1 个整数,表示能够生成的序列个数。当n=6,满足条件的序列为。如dp[1]包括:{dp[2] 包括:{原创 2023-03-15 11:09:10 · 83 阅读 · 0 评论 -
算法第二周 B : 台阶问题
有 N 级的台阶,你一开始在底部,每次可以向上迈最多 K 级台阶(最少 1 级),问到达第 N 级台阶有多少种不同方式。一个正整数,为不同方式数,由于答案可能很大,你需要输出 ans mod 100003 后的结果。它意味着爬到第 x 级台阶的方案数是爬到第 x−1,x - 2,....x−k 级台阶的方案数和。原创 2023-03-15 10:32:47 · 292 阅读 · 0 评论 -
数据结构与算法————无向图
数据结构与算法————无向图图的邻接表存储表示图的定义及分类图是由一组顶点和一组能够将两个顶点相连的边组成的我们需要定义三种结构、邻接表的构建步骤:①输入总顶点数,总边数②输入各顶点的值③输入各边所依附的两个顶点④构建新的边节点(使用头插法)原创 2023-03-04 01:08:17 · 4915 阅读 · 0 评论 -
算法设计与分析 H : 括号匹配
遇到左括号时全部压入栈,遇到右括号时,先判断该右括号和栈顶元素是不是一组匹配的括号,比如右括号是"(",则匹配的栈顶元素应该是")"字符串只会出现三种括号,“[]”,“()”,“{}”,且形如“({[]})”为合法,形如“[(])”为不合法。如果该字符串中出现的所有括号都合法,输出“Yes”,否则输出“No”。如果匹配的话,栈顶元素(左括号)出栈,右括号不做处理并读取下一个字符。给一个长度不大于100的字符串,问该字符串里出现的括号是否合法。当循环处理完毕之后,如果栈是空的,那么括号就是匹配的。原创 2023-03-03 09:52:33 · 165 阅读 · 0 评论 -
算法设计与分析 G : 排队援救
G : 排队援救 描述:突发重大灾难,n个人陷入困境,有一个救援点需要人们排队准备接受救援,假设每个人有一个名望值,进队规则如下:第一个人直接进队;当队里已经有人时,新来的人发现队尾的人的名望值比自己大或者相等,他会选择离开去其他救援点;队伍最多5人,如果一个人要进队时,发现队伍已满,而且他的名望值比队尾的人大,他会选择把队首的人挤掉而继续排在队尾。问最后得到救援的人分别是谁。输入单组数据。第一行为n(1 ≤ n ≤ 100),n为正整数。第二行为n个人的名望值,第i个去排队的人原创 2023-03-02 01:50:48 · 126 阅读 · 0 评论 -
算法设计与分析 E : 构造回文串
算法设计与分析 E : 构造回文串描述:给你一个整型(int)数N,可以将其看成字符串,是否有可能在N前加入若干个0(也可以不加),使得该字符串为回文串。原创 2023-03-01 18:44:39 · 164 阅读 · 1 评论