![](https://img-blog.csdnimg.cn/1ee16da8b07343b0a06877db37e4ddc5.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 59
各种常用算法思路、模板
zhugenmi
励志做一个资深码农
展开
-
蓝桥杯-统计子矩阵
滑动窗口[l,r]:遍历右端点,根据区间和调整左端点,如果区间和大了,左端点右移。注意区间和也要移除左端点,直到找到满足的区间,区间大小。然后遍历上边界top和下边界buttom,再这个上下边界内使用滑动窗口,由于前面维护了纵向前缀和,所以转化成类似一维的滑动窗口。使用前缀和+滑动窗口 ,可以先计算出纵向或横向的前缀和,就是以r为右端点的满足条件子矩阵个数,累加即可。表示前i行第j列之和。原创 2023-08-12 16:39:24 · 203 阅读 · 0 评论 -
CCF认证 202212-3 JPEG解码
问题背景四年一度的世界杯即将画上尾声。在本次的世界杯比赛中,视频助理裁判(Video Assistant Referee, VAR)的应用可谓是大放异彩。VAR 使用视频回放技术帮助主裁判作出正确判罚决定。西西艾弗岛足球联赛的赛场上也引入了一套 VAR 设备。作为技术供应商的技术主管小C,需要存储和编码 VAR 产生的图像数据。小 C 分析比较发现,JPEG 编码算法可以达到较好的压缩效果,并且质量损失是可以接受的。因此,小 C 决定使用 JPEG 编码算法来存储和传输图像数据。原创 2023-08-12 16:39:51 · 210 阅读 · 0 评论 -
PTA L2-043 龙龙送外卖
龙龙是“饱了呀”外卖软件的注册骑手,负责送帕特小区的外卖。帕特小区的构造非常特别,都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树,根结点是外卖站,树上的结点就是要送餐的地址。每到中午 12 点,帕特小区就进入了点餐高峰。一开始,只有一两个地方点外卖,龙龙简单就送好了;但随着大数据的分析,龙龙被派了更多的单子,也就送得越来越累……看着一大堆订单,龙龙想知道,从外卖站出发,访问所有点了外卖的地方至少一次(这样才能把外卖送到)所需的最短路程的距离到底是多少?原创 2023-04-18 10:31:23 · 576 阅读 · 0 评论 -
L2-3 清点代码库
转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出。各位大佬有啥想法,我当时就懵了,然后就挂了。。。这里我们把问题简化一下:首先假设两个功能模块如果接受同样的输入,总是给出同样的输出,则它们就是功能重复的;其次我们把每个模块的输出都简化为一个整数(在 int 范围内)。于是我们可以设计一系列输入,检查所有功能模块的对应输出,从而查出功能重复的代码。你的任务就是设计并实现这个简化问题的解决方案。原创 2023-04-13 09:36:30 · 113 阅读 · 0 评论 -
L2-2 病毒溯源
病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。原创 2023-04-13 08:44:15 · 135 阅读 · 0 评论 -
【蓝桥杯】买不到的数目【第四届】【省赛】【A组】
小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。原创 2023-03-20 10:54:43 · 180 阅读 · 0 评论 -
POJ2386 DFS/BFS
POJ2386,简单搜索应用题。使用深度优先搜索37ms,广度优先搜索47ms。原创 2022-09-03 08:00:00 · 85 阅读 · 0 评论 -
【算法设计技巧】随机化算法
在算法期间,随机数至少有一次用于决策。该算法的运行时间不只依赖于特定的输入,而且还依赖于所出现的随机数。在前面的数据结构中,随机化算法隐式地用在了和通用散列中。原创 2023-01-29 14:14:01 · 680 阅读 · 0 评论 -
【算法设计技巧】分治算法
用于设计算法的另一种常用技巧为分治算法。传统上,在其代码中至少含有两个递归调用的例程叫作分治算法,且一般认为子问题是不相交的(即基本上不重叠)。例如,问题的一个O(NlogN)和,它们分别有O(NlogN)的最坏情形以及平均时间的时间界。......原创 2023-02-25 19:33:29 · 1396 阅读 · 0 评论 -
【算法设计技巧】动态规划
任何数学递推公式都可以直接翻译成递归算法,但基本实现是:编译器常常不能正确对待递归算法,结果导致低效的程序。当怀疑很可能是这种情况时,我们必须再给编译器提供一些帮助,将递归算法重新写成非递归算法,让后者把那些子问题的答案系统地记录在一个表内。一种利用这种方法的技巧叫作动态规划(dynamic programming)。...原创 2023-02-27 08:00:00 · 116 阅读 · 0 评论 -
折半查找、欧几里得算法、幂运算和斐波那契数列
2. 欧几里得算法,计算两个整数最大公因数3.幂运算计算XN的明显的算法是使用N-1次乘法自乘。N≤1是递归的基准情形。否则,若N是偶数,则有XN=XN/2 · XN/2;如果N是奇数,则XN =X(N-1)/2 · X(N-1)/2 · X。......原创 2022-06-18 08:00:00 · 67 阅读 · 0 评论 -
最大相连子序列和
题目:最大的子序列和问题,给定(可能有负数)整数A1,A2,…,An,求∑Ak的最大值。法二:分治策略相连最大子序列和的递归算法,找出生成[left…right]的子数组中的最大和,不保留具体的最佳序列。法三:联机算法,线性时间最大相连子序列和算法提示:联机算法(on-line algorithm),在任意时刻算法都能对已经读入的数据给出子序列问题的正确答案,这种仅需要常量空间并以线性时间运行的联机算法几乎是完美的算法。...原创 2022-06-17 08:00:00 · 103 阅读 · 0 评论