自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Linux命令基础

也可以嵌套:cat test.txt | grep “123” | grep “12” 前一个命令的输出都可以当做后一个命令的输入。home目录:每个Linux操作用户在Linux系统中的个人账户目录,路径为:/home/用户名(fanxh)工作目录(pwd):启动的时候会自动加载home目录作为当前工作目录。作用:同cat,但可翻页,翻页操作是按空格,按q退出查看。作用:无需选项,给出路径参数(必填),创建一个文件。作用:列出当前工作目录下所有的内容。作用:直接全部输出文件的内容。mv 参数1 参数2。

2023-05-10 22:46:46 182

原创 Codeforces Round #869(Div.2) A + B

你作为主席可以提前知道所有人的观点,你可以开除出了自己在内的任何一位成员,以保证表决完k个议题时剩下的人数最多。其实综上来看,每一种情况下,不管是任何一种情况,当前与主席意见不一致的人都被开除,因此只要某人在任何一个议题上与主席的观点不一致,就会被开除,故剩下的人数最大值只能是自始至终都与主席观点一致的成员,我们只需要统计这些成员的人数即可。之间的数字之和一定和原序列相等,这点通过观察容易得出,因此转化为原序列的情况,而原序列成立已经证明,因此这种构造方式是满足所有情况的。,找出任意一个序列,其中。

2023-04-30 15:30:17 508 1

原创 背包问题其二(动态规划)

因此发现与01背包不同之处仅在于状态的划分,01背包对于每件物品只有选或者不选的情况,而完全背包则存在选择的数量从0到k个的情况(当选择k+1个当前的物品时体积超过限制),所以我们可以发散的思考这道题目是01234……进一步分析可以发现,对于每一件物品,我们都有两种选择,即选这件物品,或者不选这件物品(这也是这道题目被称作01背包的原因),那么我们在这两种选择中挑选最优的一种即可,通过这种方法,我们可以保证在考虑到每一件物品的时候保证当前情况是全局最优的。,用空格隔开,分别表示第 i 种物品的体积和价值。

2023-04-25 21:55:23 382

原创 Codeforces Round-866-div.2 A + B

但其实看一下样例就明白了,就是每次把最左边的数字放在最开头,总共可以操作n次,这样就可以形成一个由01组成的矩阵,然题目要求输出的即由1形成的最大矩形(矩形中每一个元素都是1)的面积(即矩形内所有数字1的数量)。首先要明确的是,三角形的边长必然是字符串中1的最长连续序列(循环中的最长,首尾都是1的时候是可以合并起来的),这样我们就可以把两个s首位相接,然后求s中1最长的连续子序列,即为三角形的边长。则上述两种情况可以归并成一种,如果三角形的边长是n(无论奇偶),则矩形中1的数量为。,则矩形中1的数量是。

2023-04-21 10:45:06 290

原创 第十四届蓝桥杯C++ B组 飞机降落

这道题目可以将飞机的到达和降落想象成一个线段问题,不同的是线段的有段点是可以移动的,移动的范围即为可以盘旋的时间。我们很自然的可以想到贪心做法,去满足每一个飞机的降落,并且让每一架飞机都尽早降落,但由于飞机具有盘旋的时间,这个时间是一个区间,使用贪心是不可行的,同时观察数据,最多只有10架飞机,因此大概率不是贪心做法。,因此最大只有$10!其中第 i架飞机在 Ti时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di 个单位时间,即它最早可以于 Ti时刻开始降落,最晚可以于 Ti+Di 时刻开始降落。

2023-04-13 14:07:22 1135

原创 第十四届蓝桥杯C++ B组——冶炼金属

分析到这里,这道题目的单调性就被发现了,我们这时采用二分查找即可找到min,再取所有记录的min中最大的一个,即为整体的min。对于max,由于它位于区间的右端点,我们也可以重新写一个二分查找去寻找右端点,但代码量增加,可以采取一个转化,仍然使用同一个二分查找的函数。我们寻找满足B + 1的下一个区间的左端点,此时找到的是满足。当作因变量,容易知道,这是一个反比例函数的形状,但是由于下取整,所以实际上以一个下降的分段函数。,因此返回的端点-1即可,最后取所有记录中最小的一个,即为整体的max。

2023-04-11 23:36:41 433 1

原创 算法模版(四)——双指针、位运算、离散化、区间合并

双指针的思路是从一个暴力二重循环优化得来的,使得其中一个指针不再向反方向走即可(但是其实有时候挺难想出来的)离散化很像前缀和操作,可以理解为在稀疏条件下的前缀和(其实我觉得叫做连续化会更好理解一点)双指针算法并没有固定的模版,具体的题目需要具体对待,下面放一道经典的题目当作模板吧。具体的思路就是把所有的距离比较远的坐标重新映射到新的数组中,把稀疏变成稠密。位运算其实并不能算一个算法,只能说是一个操作,可以用来枚举操作等。区间合并有点贪心内味,主要目的就是把有交点的两端区间合并。

2023-04-11 19:17:22 51

原创 算法模版(三)—— 前缀和和差分

前缀和的操作可以类比数学中数列的前n项和,当我们在频繁询问某个区间内元素之和的时候,使用前缀和数组首先预处理,再进行查找,可以将每一次的询问复杂度下降到。注意差分操作一定要使用另一个数组来储存,同一个数组会出错。

2023-04-11 18:55:23 50

原创 算法模版(二)—— 高精度

在C++中,不能处理位数非常大的数字进行计算,因此需要使用数组来模拟高精度。(python则不需要,因为其自带高精度)

2023-04-11 18:48:44 49

原创 算法模版(一)——排序和二分查找

用两个指针分别指向两个区间的左端点,两个指针一起向后,比较两个数字大小,把更大的数字放在前面,同时更大的指针++,直到有一个指针到达区间右端点,最后把剩下的数字接在后面。遇到小于x的数字时停下,此时交换两个指针指向的数字,重复上述步骤,直到两个指针相遇,这就完成了一次分界。(注意这里的时间复杂度是平均时间复杂度,最高的时间复杂度是。顺便附一张图,用不同的符号一定是取决于要的是哪一个值。也是基于分治的思想,分别排序左边和右边。原理太简单,直接给模板,复杂度是。直到遇见大于x的数字时停下,指向最左侧和最右侧,

2023-04-10 14:06:00 49

原创 Acwing-蓝桥杯-1214.波动数列

那么我们第一时间想到的是去枚举后一项所有的可能,即每一项的下一项有两种可能:加上a或者是减去b,如此我们枚举每一项,然后记录当前数列全部项的和。根据这个思路,我们需要定义一个二维数组,第一维是数列的项数,第二维是数列当前的和。栋栋对这种数列很好奇,他想知道长度为 n 和为 s ,而且后一项总是比前一项增加 a 或者减少 b 的整数数列可能有多少种呢?最明显的特征就是应该是一个整数(题目中强调了需要保证数列的所有项都是整数),因此这就是我们的判断。到此为止,我们所求的数列的个数,就转化成了求合法。

2023-04-03 15:44:26 240

原创 Awing-ACC杯全国联赛-B题-4942.砝码称重

当我们发现了这道题目的巨大数据量以后,可能会想到这道题目的复杂度绝对不会让我们枚举所有可以称出的重量,然后判断当前的重量是不是在范围内,而是直接去判断读入是否合法。具体来说,你的任务是判断是否可以在天平的左盘放入重量为 m 克的物品以及一些砝码(也可以不放砝码),并在天平的右盘放入一些砝码,从而使得天平的两端可以保持平衡。例如,如果 n=3,m=7,则我们可以在天平的左盘放入重量为 7 克的物品以及重量为 3 克的砝码,并在天平的右盘放入重量为。克的砝码,这样可以使得天平两端保持平衡。这道题用同余真是妙!

2023-04-03 00:41:13 95

原创 Acwing-蓝桥杯-1212.地宫取宝

由于物品的价值是从0开始的,我么为了减少特殊判断,因此将所有的物品数量都加一,因为所求得是方案数,因此并不影响最终的答案。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。步骤是通用的,分成两大部分状态表示和状态计算,然后进一步分析状态表示中的集合和属性、状态计算中的每一个状态。X 国王有一个地宫宝库,是 n×m个格子的矩阵,每个格子放一件宝贝,每个宝贝贴着价值标签。请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这 k 件宝贝。

2023-04-02 16:41:54 59

原创 Acwing-蓝桥杯-895.最长上升子序列

这道题目是一道典型的线性dp问题,dp问题往往最难思考的就是状态转移方程,接下来使用集合yxc的方法分析这道题目。给定一个长度为 N的数列,求数值严格单调递增的子序列的长度最长是多少。第二行包含 N个整数,表示完整序列。的最大值,待到全部遍历结束,则。输出一个整数,表示最大长度。即为最大上升子序列的值。从数组的开头进行遍历,第一行包含整数 N。

2023-04-02 14:00:39 180

原创 Acwing-蓝桥杯-1209.带分数

首先我们可以使用dfs算法枚举a,然后枚举c,最后通过公式计算出b,判断b中的每一位数字是是否是合法的。在枚举a和c的过程中,我们使用判重数组来保证这两个数字的每一位都是不重复的,最后再使用该判重数组判断b是否合法即可。这道题目要求我们从1-9的数字中组合出满足题意的可以表示出n的三个数字,因此我们最容易想到的是直接枚举1-9的所有全排列,并且在9个数字中间加两个隔板,以此求得三个数字,然后判断三个数字是否合法。显然这个复杂度是字在可以接受的范围内的。因此我们使用这种暴力枚举全排列的方法是可行的。

2023-04-02 10:24:47 127

原创 Acwing-蓝桥杯-116.飞行员兄弟

这道题目初看上去是一道通过上一个状态递推的问题,但是经过分析以后看出,这道题目每次改变一个把手所影响的其他把手太多,因此通过简单的递推并不能很快的找出规律。我们使用pair容器储存每次操作的步骤,分别使用两个vector容纳当前操作的所有步骤now和最小步数需要的步骤res,每次将res赋值为res和temp两者步骤更少的一个即可。因为每一个开关的操作都是有两种情况——操作或者不操作,因此可以使用位运算枚举所有的情况,最后判断每一种操作后所有的开关是否都已经被打开,如果都打开则可以纳入方案。

2023-04-02 09:07:29 107

原创 Acwing-蓝桥杯-93.递归实现组合型枚举

ACwing蓝桥杯课程题目

2023-03-31 22:26:51 163 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除