<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ajl2003的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ajl2003</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ajl2003]]></copyright><item><title><![CDATA[算法文档（蓝桥杯，acm个人备赛文档）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/137693110</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/137693110</guid><author>ajl2003</author><pubDate>Fri, 12 Apr 2024 20:01:54 +0800</pubDate><description><![CDATA[算法模板]]></description><category></category></item><item><title><![CDATA[dp模板题（y总小迷弟）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/125876613</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/125876613</guid><author>ajl2003</author><pubDate>Thu, 12 Oct 2023 17:38:12 +0800</pubDate><description><![CDATA[有N种物品和一个容量为V的背包，每种物品都有无限件可用。第i种物品的体积是v[i]，价值是val[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量，且价值总和最大。现在忽略物体实际几何形状，我们认为只要背包的剩余容量大于等于物体体积，那就可以装进背包里。这里跟01背包不同的就是。说明：右半边的集合的表达式是在dp[i-1][j] 的基础上再加一个i物品。dp[i][j] 解释：从前i个物体中选择体积不超过j的物品的方案。dp[i][j] 解释：从前i个物体中选择体积不超过j的物品的方案。]]></description><category></category></item><item><title><![CDATA[vue父子间进行通信]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/131960137</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/131960137</guid><author>ajl2003</author><pubDate>Thu, 27 Jul 2023 14:51:43 +0800</pubDate><description><![CDATA[父组件



子组件


]]></description><category></category></item><item><title><![CDATA[最小交换次数]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/125833482</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/125833482</guid><author>ajl2003</author><pubDate>Sun, 17 Jul 2022 16:36:08 +0800</pubDate><description><![CDATA[每一次得交换都只能消除一对逆序对，所以最少得交换次数就是每次得交换都满足消除一对逆序对，即交换的次数就是逆序对得个数。]]></description><category></category></item><item><title><![CDATA[通讯录（链表实现）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/125591708</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/125591708</guid><author>ajl2003</author><pubDate>Sun, 03 Jul 2022 23:46:36 +0800</pubDate><description><![CDATA[通讯录链表实现]]></description><category></category></item><item><title><![CDATA[图论（prim,kruskal,Dijsktra三大算法）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/125251502</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/125251502</guid><author>ajl2003</author><pubDate>Mon, 13 Jun 2022 00:25:50 +0800</pubDate><description><![CDATA[全网易懂的算法]]></description><category></category></item><item><title><![CDATA[给出中序和前序如何求出后序]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/125212736</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/125212736</guid><author>ajl2003</author><pubDate>Thu, 09 Jun 2022 23:09:51 +0800</pubDate><description><![CDATA[声明：本题解引用于洛谷Diamiko的题解，如有侵权，联系删除看题： 这里利用到一个最重要的知识点——二叉树遍历。前序遍历：根左右中序遍历：左根右后序遍历：左右根前序遍历是先遍历根节点，再遍历根节点的左右子树。那么，前序序列的第一个节点，一定是根节点。找到根节点，再确定根节点在中序序列中的位置，就可以分出左右两棵子树。这道题我们不需要建树，只要通过递归不断切割字符串就好了。字符串切割时应注意的问题那便是切割位置。STL的string类型自带切割方法substr，但搞不清参数就会导致WA甚至RE。首先我们搞清]]></description><category></category></item><item><title><![CDATA[八大排序方法(难点：堆排序 归并排序 快速排序)]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/125105949</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/125105949</guid><author>ajl2003</author><pubDate>Thu, 02 Jun 2022 21:57:21 +0800</pubDate><description><![CDATA[常见的排序算法]]></description><category></category></item><item><title><![CDATA[双向BFS]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/124873656</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/124873656</guid><author>ajl2003</author><pubDate>Fri, 20 May 2022 00:03:02 +0800</pubDate><description><![CDATA[百度百科的官方解释：宽度优先搜索算法（又称广度优先搜索）是最简便的图的搜索算法之一，这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS，属于一种盲目搜寻法，目的是系统地展开并检查图中的所有节点，以找寻结果。换句话说，它并不考虑结果的可能位置，彻底地搜索整张图，直到找到结果为止。

单向bfs

下图为例 A 为 初始出发点遍历整个图






1. A 入队，搜索左右相连的的节点

A
			
			
			
	]]></description><category></category></item><item><title><![CDATA[数据结构与算法]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/124761782</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/124761782</guid><author>ajl2003</author><pubDate>Fri, 13 May 2022 23:56:24 +0800</pubDate><description><![CDATA[对于稀疏图来说，用Kruskal写最小生成树效率更好，加上并查集，可对其进行优化。

Kruskal算法的步骤：

1.对所有边进行从小到大的排序。

2.每次选一条边（最小的边），如果形成环，就不加入(u,v)中，否则加入。那么加入的(u,v)一定是最佳的。

并查集：
我们可以把每个连通分量看成一个集合，该集合包含了连通分量的所有点（一个集合只有一个首领，在并查集里面称之为“代表元”）。而具体的连通方式无关紧要，好比集合中的元素没有先后顺序之分，只有“属于”与“不属于”的区别。图的所有连通分量可以用若干]]></description><category></category></item><item><title><![CDATA[阶层的近似值（斯特林公式）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123967720</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123967720</guid><author>ajl2003</author><pubDate>Tue, 05 Apr 2022 12:57:58 +0800</pubDate><description><![CDATA[公式 ：

Π的值：3.141592654

e的值： 2.71828182846



题目描述

本题为填空题，只需要算出结果后，在代码中使用输出语句将所填结果输出即可。

99 的阶乘等于：362880362880, 它的二进制表示为：10110001001100000001011000100110000000, 这个数字共有 1919 位。

请你计算，99999999 的阶乘的二进制表示一共有多少位？

思路：

对求出来的值取log2（公式）即可，因为二进制是以2为标准


#include &]]></description><category></category></item><item><title><![CDATA[水桶思想（蓝桥杯：交换瓶子）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123829323</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123829323</guid><author>ajl2003</author><pubDate>Tue, 29 Mar 2022 19:12:42 +0800</pubDate><description><![CDATA[题目描述

有 N个瓶子，编号 1 ~ N，放在架子上。

比如有 5 个瓶子：

2 1 3 5 4

要求每次拿起 2 个瓶子，交换它们的位置。

经过若干次后，使得瓶子的序号为：

1 2 3 4 5

对于这么简单的情况，显然，至少需要交换 2 次就可以复位。

如果瓶子更多呢？你可以通过编程来解决。

思路 ：

按照数组下标进行排序，比较数组下标与其存储的数是否相同，如若不同则进行遍历找到与其下标对应的数字 两者进行交换

代码如下：


#include &lt;stdio.h&gt;
int]]></description><category></category></item><item><title><![CDATA[生成回文数]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123827137</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123827137</guid><author>ajl2003</author><pubDate>Tue, 29 Mar 2022 17:29:22 +0800</pubDate><description><![CDATA[题目描述

本题为填空题，只需要算出结果后，在代码中使用输出语句将所填结果输出即可。

所谓回文数就是左右对称的数字，比如：

585,5885,123321...

当然，单个的数字也可以算作是对称的。

小明发现了一种生成回文数的方法： 比如，取数字 1919，把它与自己的翻转数相加： 19 + 91 = 110，如果不是回文数，就再进行这个过程：110+011=121 这次是回文数了。200 以内的数字中，绝大多数都可以在 30 步以内变成回文数，只有一个数字很特殊，就算迭代了1000 次，它还是顽固]]></description><category></category></item><item><title><![CDATA[二分法的（三种用法）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123671658</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123671658</guid><author>ajl2003</author><pubDate>Tue, 22 Mar 2022 22:37:41 +0800</pubDate><description><![CDATA[第一种情况：

查找给定有序数组中是否含有这个数：

这是最基本的二分法，当查找到满足条件的位置时则结束循环


给定有序数组a[5] = {1,2,3,4,5},判断是否有num = 3 这个数，存在的话将他的数组下标返回，不存在则返回-1


思路：

直接采用二分法进行搜索，如果满足条件则跳出循环


int fun(int x)
{
	int l = 0 ,r = n -1 ;
	while(l &lt;= r)
	{
		int mid = l+r &gt;&gt;1;
        if(..]]></description><category></category></item><item><title><![CDATA[习惯用ASCII解题（蓝桥杯：缩位取和）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123647510</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123647510</guid><author>ajl2003</author><pubDate>Mon, 21 Mar 2022 22:08:26 +0800</pubDate><description><![CDATA[常见ASCII码有 ：

'0' -&gt; 48 , 'a' - &gt; 97 , 'A' - &gt; 65 , '\0' - &gt;0

题目描述

在电子计算机普及以前，人们经常用一个粗略的方法来验算四则运算是否正确。

比如：248×15=3720

把乘数和被乘数分别逐位求和，如果是多位数再逐位求和，直到是 1 位数，得

2 + 4 + 8 = 14 ==&gt; 1 + 4 = 5

1 + 5 = 6；

5×6而结果逐位求和为 3。5×6 的结果逐位求和与 3 符合，说明正确的可能性]]></description><category></category></item><item><title><![CDATA[前缀和的实现]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123611523</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123611523</guid><author>ajl2003</author><pubDate>Sun, 20 Mar 2022 13:46:11 +0800</pubDate><description><![CDATA[二维前缀和：

先进行预处理阶段，如和表示一个区间内所有的和？可以用一个图形来推出答案

                   



可以看出预处理表达式为： s[i][j] = s[i][j-1] + s[i-1][j] - s[i-1][j-1] (重复的部分)

如果给定一个区间求和的话如图所示：



以(x1, y1)为左上角，(x2, y2)为右下角的子矩阵的和为：s[x2, y2] - s[x1 - 1, y2] - s[x2, y1 - 1] +...]]></description><category></category></item><item><title><![CDATA[除化乘的思想（埃及分数）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123611027</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123611027</guid><author>ajl2003</author><pubDate>Sun, 20 Mar 2022 12:55:19 +0800</pubDate><description><![CDATA[有时把除法的题目转化成乘法题可以使的题目的复杂度降到最低，不用讨论过多的可能性，以下面的题目为例

题目：

古埃及曾经创造出灿烂的人类文明，他们的分数表示却很令人不解。古埃及喜欢把一个分数分解为类似： 1/a + 1/b 的格式。

这里，a 和 b 必须是不同的两个整数，分子必须为 1。

比如，2/15 ，2/15 一共有 4 种不同的分解法（姑且称为埃及分解法）：

1/8 + 1/120

1/9 + 1/45

1/10 + 1/30

1/12 + 1/20

那么， 2/45一共有多少个不同]]></description><category></category></item><item><title><![CDATA[二进制的变形（蓝桥杯 ： 李白打酒）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123559585</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123559585</guid><author>ajl2003</author><pubDate>Thu, 17 Mar 2022 20:28:48 +0800</pubDate><description><![CDATA[什么时候用这种思路，我给答案是：在题目给出只有两种变化情况时（下面会给出题目），范围确定时可以考虑采用 二进制的方式进行暴力枚举。在此之前，你要先了解 &amp;运算符 它是用二进制数进行比较 如果都为1的话就是1 ，否则为 0 。 &gt;&gt; 运算符 : 将一个数的二进制 往右进行移动，例如 2 的二进制是 010，右移一个单位后是01。理解了这个就可以写这题了。



题目给出有15次，那你就直接暴力枚举到 2 的 15 次方 - 1 就行了，需要注意的是他要求最后一位是 b , 用 1 代表店.]]></description><category></category></item><item><title><![CDATA[如何求 在 n x m 个方格中找出所有长方形，正方形的个数]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123521182</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123521182</guid><author>ajl2003</author><pubDate>Wed, 16 Mar 2022 11:23:25 +0800</pubDate><description><![CDATA[思路 ： 假设横向为n, 纵向为m 表格的长度为l，宽度为w，先考虑纵向 当 w = 1 l = 1 时 ,如图所示有三种可能


			
		
			
		
			
		还是考虑纵向当 w = 2 l = 1时,如图所示有两种可能


		
		
		
		
		
		依次类推，对这列考虑的时候个数与其宽度 之间有个关系式 ， m - w+1,

 接下来对行考虑也是这样 先固定w = 1 不变 ，依次考虑 l = 1 , l = 2 .... 可得 n-l+1

则长方形的总个数为 （m-（w...]]></description><category></category></item><item><title><![CDATA[dfs专题（总结）]]></title><link>https://blog.youkuaiyun.com/ajl2003/article/details/123475652</link><guid>https://blog.youkuaiyun.com/ajl2003/article/details/123475652</guid><author>ajl2003</author><pubDate>Mon, 14 Mar 2022 12:43:02 +0800</pubDate><description><![CDATA[简介：

DFS是深度优先搜索的英文缩写。

其基本思路为：

1、访问顶点v；

2、依次从v的未被访问的邻接点出发，对图进行深度优先遍历；直至图中和v有路径相通的顶点都被访问；

3、若此时图中尚有顶点未被访问，则从一个未被访问的顶点出发，重新进行深度优先遍历，直到图中所有顶点均被访问过为止。

正文：

以下例题基本来源于蓝桥杯真题，在写题中自我总结，在进入正题之前先看一道简单的例题

《全排列问题》

题目描述

按照字典序输出自然数 11 到 nn 所有不重复的排列，即 nn 的全排列，要求所产生]]></description><category></category></item></channel></rss>