自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 寒假集训 图论入门

要求来回的最短路径和,而且是单源的,所以用dijkstra,去的时候直接利用已知有向图就能得到起点到所有其它点的最短路径。而算回来的时候,总不可能一个点一个点地去算这些点到起点的最短路径吧,我们考虑是否可以转化成起点到其它点,这直接构造反向图就可以了。分层图思想,将免费的乘坐机会表示为向上一层,路径为0,且为单向,这样间接记录了已经使用了的免费次数。我们知道,从1个结点出发能达到的最远地方肯定是叶,并且它是除了出发外最远的分支,所以只需要遍历两次,第1次找到相对最远的叶,第2次从该叶遍历就能找到直径。

2025-02-19 18:24:49 467

原创 寒假集训 动态规划初步

状态转移:我们知道,骗子不能相邻,所以dp[i][0]=dp[i-1][1]。对于第i人是诚实的,第i-1人可以是骗子也可以是诚实的,所以dp[i][1]可能等于0或dp[i-1][0]或dp[i-1][1]或dp[i-1][0]+dp[i-1][1],那就要看我们所得到的数据是否满足dp[i-1][0]或dp[i-1][1]被加入的必要条件,如果第i-1人诚实,那么arr[i]==arr[i-1]肯定成立,如果i-1骗子,则i-2是诚实的,那么arr[i]==arr[i-2]+1肯定成立。

2025-02-16 18:10:21 825

原创 寒假集训 搜索专题

这道题思路倒是很直观,首先我们当然得找到所有的连成一片的区域块,这用bfs来实现,而在这bfs的过程中,我们需要判断这块区域是山脊,山谷,还是啥也不是,这挺好操作的,具体的操作看下方代码。注意要记录被判断过的区域,保证1块区域只被记录1次(高度全一样除外),这不得不说我的第1次提交wa了4个点,写代码的时候一定要三思而后行啊,我一开始的时候得到jud==1(就是啥也不是的情况)时手欠把它退出循环了,导致这块区域没有被完全标记。第1题:自然数的拆分问题(洛谷P-2404)第2题:填涂颜色(洛谷P-1162)

2025-02-13 15:44:03 508

原创 寒假集训数论专题

思考一下,是不可以的,所以如果数组里有质数,如果所求值存在,必为该质数,所以不能有两个质数。所以只剩只有一个质数的情况了,分奇偶讨论并用类似证明2可以转化成任意合数的方法来证就可以了。这个直接把所有可能的lcm给统计出来 ,然后找到最大的lcm,这里要注意的是,在求每一个lcm时,不必去一定要最小公倍,只要是公倍就行,即弱化条件,因为在后续找最大lcm的过程中,不会选到不是最小公倍的。根据整数模 的性质处理输入(先乘10再模和先模再乘得到的数同余),(bx,a)的关系可写成(bx,1)和(a,a);

2025-02-10 18:09:27 529

原创 寒假集训专题3

最朴素的想法:是每一个都暴力往后遍历来找到仰望对象,显然是会超时的,但是,稍加思考,我们会发现,我们完全可以依托已经知道的信息来当跳板进行高效寻找,就是记忆化方法,具体是:对于某个奶牛我们要找其仰望对象,看其右边紧邻的奶牛是否满足条件,是结束,不是则判断其仰望对象,以此类推。因为本题说一个区间不会完全包含另一个区间,简单思考就可以得出,如果区间左端点单调,右端点也肯定单调,所以每个士兵尽可能地跑远(就是跑到他的区间内遇到的最后一位士兵那)可以让用到的士兵最少;第3题:合并果子 (洛谷P1090)

2025-02-07 21:59:26 415

原创 初识广度优先搜索(BFS)

而本题要注意所处的层次(即第几步),这只需要一个标记变量,我们知道:当某一步最后一种情况被遍历后,队列里所有的元素就都是走过相同步数而达到的了。解题思路:要求得到最小的变换步数或者no answer,在变换法则数目一定(记为x)的情况下 ,每一步都要尝试这x种可能,而且它要我们得出最少步数(即最优解),这让我们容易想到BFS,因为BFS是一层层遍历下去的,所以第一个找到的满足条件的解一定是最优解。其基本思想是从某一起始点出发,探索所有之前没被探索过的邻居节点,层层推进,直到遍历所有。

2025-01-28 23:02:41 508

原创 寒假集训专题2

它需要一个check判断函数,显然的,对于每个未切的长方形,尽可能地从一角开始切,不难得出每块长方形最多可切出(h[i]/x)*(w[i]/x)个正方形巧克力(x是正方形边长,h是长,w是宽)。要找数对的个数,由于我们给C赋值,所以对于确定的B,有确定的A值,那么如何计算对于某个确定的B所对应的A数?这是我们的主要问题,这相当于在这串数中计算A值的个数,一个个统计显然是低效的,由于二分查找能够找到第一个和最后一个出现的要求值,所以采用二分法,那么对数串进行排序就必不可少了。第4题:洛谷-P8800 卡牌。

2025-01-25 21:35:05 671 1

原创 新手就是爱记录:DFS深度优先搜索算法

解题思路:很明显的遍历问题,我们需要找到所有走法的最长路程,这题意说任意起点任意终点,不能重复走,这显然是符合DFS一条路走到黑的特征的。但这题需要我们找到最值,将所有可能值记录下来显然是不现实的,那么是不是可以将路径分段化,在每一个节点都去获取最大值,这可以通过递归实现。其基本思想是从起始节点尽可能深地进行搜索,直到不能继续,然后回溯到分叉,探索其他搜索路径,直到遍历所有节点或找到目标。深度优先搜索(DFS)是图论的基础算法,可用于遍历搜索图,树等数据结构。洛谷的题:P1294 高手去散步。

2025-01-24 10:11:25 541 1

原创 寒假集训专题1

寒假集训练习及总结

2025-01-22 15:58:20 372 2

空空如也

空空如也

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

TA关注的人

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