自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDOJ 1053 Entropy

链接:Problem - 1053 (hdu.edu.cn)问题描述:问题分析:运用哈夫曼树的概念进行解题.代码实现:#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <queue>#include <vector>#include <functional>#inc.

2021-09-19 11:10:02 103 2

原创 HDOJ 1978 How many ways

链接:​​​​​​Problem - 1978 (hdu.edu.cn)问题描述:问题分析:这也是dp+搜索的题目,可以使用dfs记忆化。代码实现:#include <algorithm>#include <iostream>#include <cstring>#include <cstdio>using namespace std;int dp[105][105];int ans[105][105];int t,n,.

2021-09-19 09:59:57 91

原创 HDOJ 1078 FatMouse and Cheese

链接:Problem - 1078 (hdu.edu.cn)问题描述:问题分析:这是一个DP+搜索的题目,可以用记忆DFS来写。代码实现:#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;int init[102][102];int ans[102][102];int dx[]={-1

2021-09-19 09:33:12 87

原创 二分匹配算法笔记

什么是二分图?如果一个图的顶点可以分为两个集合X和Y,图的所有边一定是有一个顶点属于集合X,另一个顶点属于集合Y,则称该图为“二分图”或“二部图”( Bipartite Graph )二分匹配算法题目:HDOJ 1150 Machine Schedule_m0_55756918的博客-CSDN博客...

2021-09-15 19:55:55 75

原创 HDOJ 1150 Machine Schedule

链接:Problem - 1150 (hdu.edu.cn)问题描述:问题分析:这个题可转化成求二分图的最大匹配数,最小覆盖数=最大匹配。用匈牙利算法。代码实现:#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;const int MAX=110;bool g[MAX][MAX];in

2021-09-15 18:21:07 76

原创 DFS 算法笔记

预备知识:二叉树的遍历1、先根遍历(根左右)2、中根遍历(左根右)3、后根遍历(左右根)1、给定先根和中根遍历结果,是否可以唯一确定这棵二叉树? YES2、给定中根和后根遍历呢? YES3、给定先根和后根遍历呢? NO(反例?)深度优先搜索算法(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜...

2021-09-14 21:37:44 93

原创 HDOJ1495 非常可乐

链接:Problem - 1495 (hdu.edu.cn)问题描述:解题思路:这也是典型得BFS求解得问题,由于没有刻度,所以杯子只有倒满或者不倒,最后得到两杯分量一样的可乐即可,另外党课了为奇数时,一定是不可能均分的,可以写出条件直接判断。代码实现:#include <iostream>#include <algorithm>#include <cstdio>#include <queue>using namespace

2021-09-07 20:59:53 84

原创 HDOJ 1548 A strange lift

链接:Problem - 1548 (hdu.edu.cn)问题描述:题目大意:一开始在某一层,然后根据某一层的ki上升或下降电梯,如果能到达目标层,则输出用的次数,如果不能到达则输出 -1.解题思路:运用bfs,将此问题编程图的问题。代码实现:#include <iostream>#include <algorithm>#include <queue>using namespace std;int n,start,targe..

2021-09-06 20:38:16 90

原创 BFS入门算法笔记

队列特点:1、先进先出(FIFO)2、从队头删除元素3、在队尾加入元素队列的创建对象:queue<元素类型> 队列名;队列添加元素:队列名. push(元素名);去掉队首元素:队列名.pop();访问队首元素:队列名.front() ;访问队尾元素:队列名. back();判断是否为空:队列名.empty();返回队列大小:队列名.size();BFS基本思想:从初始状态S开始,利用规则,生成所有可能的状态,构成树的下一层节点检查是否出现

2021-09-05 22:00:30 124

原创 图的算法笔记

图的存贮:有向图: 0 1 2 3 4 0 30 100 1 62 2 3 30 90 4 根据起点和终点可以建立一个二维数组。如果是无向图,则可以建立对称的二位矩阵。最短路径问题:...

2021-09-05 18:51:31 61

原创 HDOJ 1874 畅通工程续

链接:Problem - 1874 (hdu.edu.cn)问题描述:解题思路:先设置输入数据,由于是无向图,所以建立堆成矩阵(二维数组)

2021-09-05 18:51:20 63

原创 背包问题笔记

背包的基本模型:给你一个容量为V的背包和若干种物品,在一定的限制条件下(每种物品都占用一定容量),问最多能放进多少价值的物品?背包是很典型、最基本的DP问题背包的每个容量都是“状态”背包问题的分类01背包完全背包 多重背包二维费用背包 混合三种背包 分组背包 有依赖的背包01背包问题:有 N件物品和一个容量为V的背包。第件物品的费用是,价值是。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。代码模板:#...

2021-09-01 19:35:10 114

原创 HDOJ1232 畅通工程

链接:Problem - 1232 (hdu.edu.cn)解题思路:将每个数组的老大找到,有几个老大就要几条路。大佬画的图,7和10是老大代码实现:#include <iostream>#include<algorithm>using namespace std;int load[1010];int find(int x){ int r; r=x; while(load[r]!=r){ r=load...

2021-08-30 21:52:23 87

原创 HDOJ 2045 不容易系列之(3)—— LELE的RPG难题

链接:Problem - 2045 (hdu.edu.cn)问题分析:这是一道递归题目,找到其规律即可求解解题思路:借鉴别的大佬寻找的规律求得结果。假如说先把全部情况都列出来(不考虑首尾不能相同),即为3*2^(n-1)种,这是所有的情况,再减去首位相等的情况即可,这样的话,首尾相等的情况是什么样的呢?不难想象得出,当n-1个空格的时候,加一个格,使首尾颜色相同,这种情况下,n个格且首尾相同情况下所有的颜色种类与n-1的情况下所有的满足题意的情况数相同。原文链接:https://b..

2021-08-29 20:10:53 81

原创 HDOJ 1160FatMouse‘s Speed

链接:Problem - 1160 (hdu.edu.cn)解题思路:先把老鼠按体重进行排序,就可以降维思考这个问题,使用dp来解决代码实现:#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespace std;int dp[1010];int pre[10010];struct Mouse{ int..

2021-08-29 11:17:03 82

原创 DP(动态规划)入门笔记

查阅资料后:DP一般用于解决多阶段决策问题,即每个阶段都要做一个决策,全部的决策是一个决策序列,求一个最好的决策序列使得这个问题有最优解。将待求解的问题分为若干个相互联系的子问题,只在第一次遇到的时候求解,然后将这个子问题的答案保存下来,下次又遇到的时候直接拿过来用即可。贪心算法不一定是最优解经典例题:HDOJ 2084数塔问题_m0_55756918的博客-CSDN博客例题:HDOJ 1257最少拦截系统_m0_55756918的博客-CSDN博客HDOJ 1176免费馅饼_m0_55

2021-08-28 19:14:48 74

原创 HDOJ1421 搬宿舍

链接:Problem - 1421 (hdu.edu.cn)

2021-08-28 19:13:57 78

原创 枚举算法及练习笔记

枚举就是根据提出的问题,一一列出该问题的所有可能的解,并在逐一列出的过程中,检验每个可能解是否是问题的真正解,如果是就采纳这个解,如果不是就继续判断下一个。枚举法一般比较直观,容易理解,但由于要检查所有的可能解,因此运行效率较低。能够用枚举法解决的题目往往是最简单的一类题目。这种题目具有以下特点:·解枚举范围是有穷的。·检验条件是确定的。先来看一个简单的问题。某人说:“我的年龄是个两位数,我比儿子大27岁,如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄"请你计算:某人的年龄—共有多少种可能

2021-08-28 18:39:45 173

原创 HDOJ 1176免费馅饼

链接:Problem - 1176 (hdu.edu.cn)问题分析:与2084的灯塔问题类似自顶向下的分析,自底向上的计算。代码实现:#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int dp[100010][20]={0};int x;int t;int maxn;//计最大时间int main(){ int n;

2021-08-27 23:31:50 86

原创 HDOJ 2084数塔问题

链接:Problem - 2084 (hdu.edu.cn)问题分析:自顶向下的分析,自底向上的计算。

2021-08-27 20:14:22 127

原创 HDOJ 1257最少拦截系统

链接:Problem - 1257 (hdu.edu.cn)解题思路:导弹需要依次拦截,打的高度是递减的,如果在序列中出现了递增,那么说明我们需要另外一套系统来打这个递增的高度,也就是出现了多少次的递增,我们就需要多少套系统。求出最长递增子序列就是结果。问题的本质是求最长不上升序列。代码实现:1.贪心#include <iostream>#include <cstdio>using namespace std;int Missile[100010]

2021-08-27 18:10:13 106

原创 STL库中的排序与sort

对于一个数组,通过对数组中的元素进行交换,我们可以将数组中的元素按从大到小的或从小到大的顺序排列。当我们希望对数组中的元素进行排序时,我们可以使用C++为我们提供的工具——sort。有了它,你再也不用纠结如何完成排序了。sort是一个C++已经为我们实现好的工具,当我们要用它时,需要先引入一个算法的库——<algorithm>。需要说明的是,sort可以排序任何类型的元素,包括我们自己定义的结构体。我们将需要在C++文件的开始位置加上:#include <algorithm&

2021-08-26 17:14:31 262

原创 递堆求解笔记

引导问题:1、f(n)=10+(n-1)*22、递归f(1)=10; f(n)=f(n-1)+2;为动态规划做铺垫。例题:HDOJ 2050 折线分割平面_m0_55756918的博客-CSDN博客HDOJ 2046骨牌铺方格_m0_55756918的博客-CSDN博客卡特兰数:Catalan number,卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。卡特兰数的前几

2021-08-26 15:57:21 105

原创 HDOJ 2046骨牌铺方格

链接:Problem - 2046 (hdu.edu.cn)解题思路:1、寻找规律,类似与斐波那契数列。代码实现:#include <iostream>using namespace std;int main(){ __int64 num[60]; int n; num[1]=1; num[2]=2; for(int i=3;i<52;i++) num[i]=num[i-2]+num[i-1];

2021-08-26 11:59:53 69

原创 HDOJ 2050 折线分割平面

链接:Problem - 2050 (hdu.edu.cn)题目大意:折线相交得到的最大平面数解题思路:1、如果都是直线则规律为f(1)=2f(2)=4f(3)=7....f(n)=f(n-1)+n2、如果折线f(1)=2f(2)=7f(3)=16....f(n)=f(n-1)+4*(n-1)+1=f(1)+4+4*2+...+4*(n-1)+n-1=2n^2+1-n代码实现:1、递归#include <iostream

2021-08-26 11:26:20 88

原创 HDOJ 2035人见人爱A^B

链接:Problem - 2035 (hdu.edu.cn)题目大意:求A的B次方的最后三位数表示的整数解题思路:1、可以在每一次取最后三位整数,防止数值过大,爆空间2、运用递归进行快速幂运算代码实现:...

2021-08-25 16:46:38 80

原创 HDOJ 1108 最小公倍数

链接:Problem - 1108 (hdu.edu.cn)Problem Description给定两个正整数,计算这两个数的最小公倍数。Input输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数.Output对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。Sample Input10 14Sample Output70题目大意:求解最小公倍数解题思路:先用辗转相除求求最大公约数gcd,再根据公式求最小公倍数lcm(a

2021-08-25 10:21:06 97

原创 HDOJ1009 FatMouse‘ Trade

链接:Problem - 1009 (hdu.edu.cn)Problem DescriptionFatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBe

2021-08-25 09:52:01 83

原创 贪心算法笔记

总是作出在当前看来是最好的选择!!!不从整体上加以考虑,所作出的仅仅是在某种意义上的局部最优解。例一:田忌赛马经典例子:事件序列问题反证法证明贪心思路的正确性可图性判定!两个概念:1.度序列:若把图G所有顶点的度数排成一个序列S,则称S为图的度序列...

2021-08-24 21:19:44 219

空空如也

空空如也

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

TA关注的人

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