摘要: 一道简单的括号匹配问题,如果是左括号就入栈,如果是右括号且与栈顶匹配则答案加2,如果不匹配则答案清零,每次都更新一下最优答案即可。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std 阅读全文
posted @ 2019-03-31 16:43 AD_shl 阅读(449) 评论(1) 推荐(0) 编辑
摘要: 一道单调栈的基础题,我们建立一个单调上升的栈,当一个矩形被扫描时,如果他的高度大于栈顶就直接入栈,否则就不断取出栈顶,直到栈空或者栈顶小于当前矩形,在出栈的同时,我们累计被弹出的矩形宽度之和,每次弹出一个矩形,我们就用他的高度乘累计的宽度更新答案,出栈结束后,我们把一个高度为当前高度,宽度为累计宽度 阅读全文
posted @ 2019-03-31 14:02 AD_shl 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 栈的入门题,主要考察了栈的基本操作,用递归模拟实现即可 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <cstdlib> 6 using namespa 阅读全文
posted @ 2019-03-31 13:16 AD_shl 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 这道题是洛谷“八数码难题”的升级版,洛谷只要求出最少步数,而本题要输出结果。 我们在搜索的时候记录每一个状态的前驱,最后输出的时候递归即可。 我们采用A*算法进行搜索,设计估价函数为当前状态每个点与目标状态每个点的曼哈顿距离之和。在搜索时建立一个小根堆维护即可。 代码细节比较多,注意对细节的处理。可 阅读全文
posted @ 2019-03-31 10:27 AD_shl 阅读(332) 评论(0) 推荐(0) 编辑