自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《算法竞赛从入门到进阶》心得及相关题解022--bfs--hdu1495

题目意思:hdu1495,三个容量为r0,r1,r2的容器,r0=r1+r2,开始时r0装满可乐,问可否评分可乐。解题思路:bfs:1.总量为奇数是无法平分直接输出NO;2.用二维数组vis记录r1和r2现有的水量,由于水量是固定的,故无需用三维数组;3.可用pure(i,j)记录容器i向容器j倒水的动作:如果i为空或j已满水则不操作,如果j剩余空间大于i的水量则全部倒入,否则部分倒入。代码明细://probID: hdu1495//author: WiselyQY//date: 2.

2021-01-05 22:55:54 100 1

原创 《算法竞赛从入门到进阶》心得及相关题解021--bfs--hdu1240

题目意思:hdu1240,n*n的立方体,O代表路,X代表障碍物,问从起点到终点至少需要多少步,如没有路则输出NO ROUTE。解题思路:水题,bfs,连坑都没有。代码明细://probID: hdu1240//author: WiselyQY//date: 2020-01-05#include <bits/stdc++.h>using namespace std;const int INF=1<<30;struct Node{ int x,y,.

2021-01-05 22:54:00 123

原创 《算法竞赛从入门到进阶》心得及相关题解020--bfs--hdu1372

题目意思:hdu1372,问国际象棋中的马从起始位置到目标位置至少要几步。解题思路:水题,bfs,连坑都没有。代码明细://probID: hdu1372//author: WiselyQY//date: 2021-01-04#include <bits/stdc++.h>using namespace std;struct Node{ int x,y,step;};const int INF=1<<30;int sx,sy,ex,ey,vi.

2021-01-04 22:10:10 102

原创 《算法竞赛从入门到进阶》心得及相关题解019--bfs--hdu2717

题目意思:hdu2717,每一次可以前进一步,或后退一步,或跳到当前位置的2倍位置。问从位置N到位置K至少需要多少步。解题思路:水题,bfs,连坑都没有。代码明细://probID: hdu2717//author: WiselyQY//date: 2021-01-04#include <bits/stdc++.h>using namespace std;const int INF=1<<30;struct Node{ int pos,step;.

2021-01-04 22:09:03 86

原创 《算法竞赛从入门到进阶》心得及相关题解018--bfs--hdu1548

题目意思:hdu1548,每层电梯上有个数字k,可以往上k层或向下k层,问从a层到b层至少需要多少步,如不能到达则输出-1。解题思路:水题,bfs,连坑都没有。代码明细://probID: hdu1548//author: WiselyQY//date: 2020-01-#include <bits/stdc++.h>using namespace std;const int INF=1<<30;struct Node{ int level, s.

2021-01-04 22:07:47 74

原创 《算法竞赛从入门到进阶》心得及相关题解017--bfs--hdu1253

题目意思:hdu1253, 三层迷宫,1代表墙,0代表路,问从(0,0,0)到(a-1,b-1,c-1)位置至少要多少步,如果能在规定的步数内到达输出该步数,否则输出-1。解题思路:水题,bfs,连坑都没有。代码明细://probID: hdu1253//author: WiselyQY//date: 2020-01-04#include <bits/stdc++.h>using namespace std;const int INF=1<<30;stru.

2021-01-04 22:06:22 53

原创 《算法竞赛从入门到进阶》心得及相关题解016--bfs--hdu2102

题目意思:hdu2102,两层迷宫,*代表墙,.代表路,#代表传送机可在两层之间切换,问从S到P能否在t时间内到达。解题思路:bfs,题目不难,就是多坑。易错的点:1.两层同一位置可能都是传送机#。2.一层是传送机,另一层是墙。这两种情形都不能进传送机。这里wa了好多次。代码明细://probID: hdu2102//author: WiselyQY//date: 2020-01-04#include <bits/stdc++.h>using namespace std.

2021-01-04 22:05:12 62

原创 《算法竞赛从入门到进阶》心得及相关题解015--bfs--hdu1180

题目意思:hdu1180,给你一张图,图上有些障碍物和楼梯,每走一步楼梯的状态会改变。问从起点到终点至少要多少步。解题思路:标准bfs题目,每次要走新的一步时,判断如下:1.如果新的位置不在图内,或在图内但是*时或已经访问过时,则不处理;2.如果新位置是.时,移动到新位置步数加1入队列;3.左右移动时如果楼梯刚好是’-‘则可越过;上下移动,如果楼梯刚好是’|'也刚好可越过。都移动到新位置则步数加1队列;4.否则原地等待楼梯转到正确方向。1.初始化时T必须改为. 否则搜索不到;2.设置.

2021-01-04 11:05:05 84

原创 《算法竞赛从入门到进阶》心得及相关题解14--dfs--hdu1551

题目意思:hdu1551,给你n条电缆及其长度,现在需要k条同样长度的电缆,问最多可以切割的长度。如给你4条电缆长度分别是8.02、7.43、4.57、5.39,现在需要11条同样长度的电缆,那么最多只能切割成2.00的长度。解题思路:水题,书上写的dfs题目,实际上楼主用的是二分查收,查找的长度从电缆中最大的长度maxg/k至所有电缆的长度之和sum/k之间。代码明细://probID: hdu1551//author: WiselyQY//date: 2021-01-03#includ.

2021-01-04 11:04:53 188

原创 《算法竞赛从入门到进阶》心得及相关题解013--dfs--hdu1547

题目意思:hdu1547,Bubble Shooter游戏,新射出的球和已有的球能连成三个及以上的会爆炸,爆炸后有些球和最上层的球失去连接,这些球也会爆炸。问射出某个球后,图上如果爆炸后还剩多少颗球。解题思路:首先算出图上的球的数量total,全部球vis标记为0,然后两次dfs:1.先把新射出去球标记为1,从这个位置开始dfs,六个方向同颜色的都标记为1,算出总共可以连接的同颜色球的数量cnt1;2.如果cnt1小于3则根本不会爆炸,输出0结束;2.如果cnt1>=3则设定cnt2=0,.

2021-01-04 11:04:38 94

原创 《算法竞赛从入门到进阶》心得及相关题解012--dfs--hdu2514

题目意思:hdu2514,给定一张图,空白的地方填上数字1-8,使得相邻位置所填的数字不能相邻。问有多少种填发,如没有则输出No answer,如不唯一输出Not unique,如答案唯一则输入唯一答案。解题思路:暴力dfs,数据量很少。代码明细://probID: hdu2514//author: WiselyQY//date: 2021-01-02#include <bits/stdc++.h>using namespace std;int g[10],vis[10].

2021-01-04 11:03:53 82

原创 《算法竞赛从入门到进阶》心得及相关题解011--dfs--hdu2616

题目意思:hdu2616,怪兽有m血点值,有n种武器(a,m,如果怪兽现有血点值低于等于m该武器可造成2a点损伤,否则造成a点损伤)。问至少需要多少种武器才能杀死该怪兽,如不能则输出-1。解题思路:暴力dfs,武器总量不超过11不会TLE的。易错的点:注意怪兽血点值等于零时就会死。代码明细://probID: hdu2616//author: WiselyQY//date: 2020-12-30#include <bits/stdc++.h>using namespace.

2021-01-03 13:16:35 97 1

原创 《算法竞赛从入门到进阶》心得及相关题解010--dfs--hdu2782

题目意思:hdu2782,给定一张图,图上的点不是食物就是石头,虫从起始位置,往四个方向走并吃掉食物,在没有碰到石头、吃过的位置及边界时不允许改变原有的行进方向。问最多可吃到的食物数量,最小字典序的起点坐标的方向。解题思路:模拟+dfs,注意一开始时先算出最大可能吃到的食物数量,如果某次搜索搜到该数量则不继续,直接返回输出答案,不然会TLE。另外,模拟行进方向时,第一步就遇到石头或边界时不允许转向,非第一步则可转向。代码明细://probID: hdu2782//author: WiselyQ.

2021-01-03 13:15:06 90

原创 《算法竞赛从入门到进阶》心得及相关题解009--dfs--hdu2821

题目意思:hdu2821,给定一张图,图上有些障碍物,将球放在没有障碍物的起始位置,球能上下左右移动,但不能滚出图外。移动时撞到障碍物可将障碍物的数量减一并推向下一位置,如果下一位置同样有障碍物则该位置障碍物数量可叠加。注意推动障碍物必须与障碍物至少有一个点的间隔,否则不能推动障碍物。求起始位置及移动的明细。解题思路:模拟+dfs,注意障碍物可推出图外,因此可将数组稍微设大一点,可减少代码量及相关判断。代码明细://probID: hdu2821//author: WiselyQY//dat.

2021-01-03 13:13:48 97

原创 《算法竞赛从入门到进阶》心得及相关题解008--dfs--hdu3290

题目意思:hdu3290,给定一棵树,第一天只有叶子节点有苹果且苹果数量等于该节点的编号。之后每一天,如果某个节点的所有孩子都有苹果,则该节点可长出所有孩子节点中排名第(K+1)/2名的苹果数量。问最终根节点的苹果数量。解题思路:先算出根节点的id,从根节点开始dfs,每个节点递归算出K个孩子节点的苹果数量,从小到大排序,返回第(K+1)/2名的数量即可。此题最好用stl的vector数组来做,写起来会很方便。易错的点:20000个节点输入非常巨大,必须用scanf和printf,如果用cin和c.

2021-01-03 13:12:21 101

原创 《算法竞赛从入门到进阶》心得及相关题解007--dfs--hdu3350

题目意思:hdu3350,给定一个表达式,表达式只含数字、+和MAX(a,b)的表达式,其中MAX(a,b)表达式可能有嵌套,问表达式的计算结果和加法的次数。解题思路:用结构体保存计算结果sum和加法的次数cnt,递归该表达式:1.若第一个字母为数字,则求出该数字;若第一个字母为M,则分割成两部分,递归求出两部分的结构体u1和u2,如前半部分计算结果大于后半部分,则计算结构体u.sum=u1.sum且u.cnt=u1.cnt*2+u2.cnt,否则u.sum=u2.sum且u.cnt=u1.cnt+.

2021-01-03 13:11:05 88

原创 《算法竞赛从入门到进阶》心得及相关题解006--dfs--hdu2677

题目意思:hdu2677,dota游戏,你能在商店买到基本武器,手头上也有一些武器(不一定为基本武器),且知道武器的合成规则,现在给出想要的武器列表,问最少需要花多少钱。解题思路:递归想要的武器列表:1.如果手头上已有该武器想要的全部数量,则不购买返回0,如只有部分数量,则购买不足部分的数量返回;2.如该武器为基本武器,则从商店购买返回;3.如该武器不为基本武器,则根据武器合成规则递归算出需要的价钱。易错的点:此题难度不大,但注意不要用map,之前全部用STL的map偷懒,结果MLE了好多次.

2021-01-03 13:08:21 111

原创 《算法竞赛从入门到进阶》心得及相关题解005--dfs--hdu2553

题目意思:hdu2553经典皇后问题。解题思路:暴力,打表,注意不打表会TLE。代码明细1:(用于打表)//probID: hdu2553//author: WiselyQY//date: 2020-12-29#include <bits/stdc++.h>using namespace std;int g[15],n,cnt;int check(int now, int i){ for(int j=0; j<now; j++) if(i.

2021-01-03 13:06:28 80

原创 《算法竞赛从入门到进阶》心得及相关题解004--dfs--hdu2510

题目意思:hdu2510,填+和-的符号三角形,统计+和-相等的三角形个数。解题思路:暴力,打表。代码明细1:(用于打表)//probID: hdu2510//author: WiselyQY//date: 2020-12-29#include <bits/stdc++.h>using namespace std;int cnt, cnt1, cnt2, g[30][30], n;void dfs(int now){ if(now==n) { .

2021-01-03 13:04:18 95

原创 2021-01-03

题目意思:hdu1426,?的位置填数字,每行每列及所在3*3区域数字不能重复。解题思路:显而易见,用数组记录每个点的访问情况,遍历矩阵,每个点八个方向bfs,用count记录deposit的个数。代码明细://probID: hdu1426//author: WiselyQY//date: 2020-12-28#include <bits/stdc++.h>using namespace std;//flag用于标记是否为第一个caseint g[9][...

2021-01-03 13:01:16 69

原创 《算法竞赛从入门到进阶》心得及相关题解002--dfs--hdu1241

题目意思:hdu1241,@代表是一个pocket,上、下、左、右、左上、左下、右上、右下八个方向的pocket可相互连接成一个deposit,给定一张m*n的矩阵,问这个矩阵有多少个deposit。解题思路:显而易见,用数组记录每个点的访问情况,遍历矩阵,每个点八个方向bfs,用count记录deposit的个数。代码明细://probID: hdu1241//author: WiselyQY//date:2020-12-28#include <bits/stdc+...

2021-01-03 12:58:18 119

原创 《算法竞赛从入门到进阶》心得及相关题解001

说来惭愧,楼主本来是四年本科+两年研究生计算机科班出身,但由于毕业后没有从事专业工作,荒废了好多年。最后工作没那么忙,突然又对算法方面起了兴趣,就想找本算法书研究研究,顺便找相关OJ测试一下代码能力。去搜搜相关书籍,《算法导论》太多推导不是我想要的,直接放弃。《算法竞赛入门经典》感觉对于荒废多年的人还是太难,后来就买了本《算法竞赛从入门到进阶》来研究。 陆续读了两个月,由于楼主只有下班时间带完孩子后才有一到两个钟头看书刷题,且相关题目一卡起来两三天才能解决,读了两个月才读完搜...

2020-12-23 10:47:21 631 3

空空如也

空空如也

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

TA关注的人

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