刷题记录
yonchicy
这个作者很懒,什么都没留下…
展开
-
hdu1285 确定比赛名次
1.分析这道题目是学习了拓扑排序之后的习题,所以自然而然往拓扑排序思考。要求是赢得队伍排名一定在输的队伍之前。把队伍看成结点,如果A队赢了B队,就连一条有向边<A,B>,这样就建立起了图论模型。然后就能发现题目是要求输出一个图的拓扑排序。题目中要求输出字典序最小的拓扑排序,那么只需要每次优先输出入度为零的、编号最小的点就可以了。有些贪心算法的思路在里面。2.AC代码#include <iostream>#include <algorithm>#include原创 2020-10-09 15:45:18 · 75 阅读 · 0 评论 -
洛谷 P1073 最优贸易
1.分析这道题目做法有很多,作为一个初学者,还是用深搜来解答。上课老师提示过有两个剪枝条件最小价格没有改变则退出最大利润没有改变则退出所以在写深搜的时候,需要记录一下最小价格和最大利润。洛谷的题解第一名采取了深搜加动态规划的方式,他的DP思路和我们老师上课提示过的很相似。只不过他的代码中,记录最大利润的数组、记录最小价格的数组都可以被优化掉 ,虽然算法题不需要考虑空间复杂度。2.AC代码#include <iostream>#include <algorithm>原创 2020-10-07 10:54:40 · 149 阅读 · 0 评论 -
洛谷 P3958奶酪
1.分析由于是学习深搜,直接就用深搜做了,感觉挺简单,有点判断图的连通性的问道。2.代码1.前两次提交第一次提交,就过了两个点,莫名奇妙的,然后见了剪了一下枝,突然就能过8个点了。2.AC代码后来做不出来,看了下题解,发现是因为没有注意到原题中数据的范围导致错误,把数据类型都换成长整型之后,顺利AC#include <iostream>#include <algorithm>#include <stdlib.h>#include <cstring原创 2020-10-06 21:55:15 · 201 阅读 · 0 评论 -
洛谷P1141 01迷宫
1.分析首先这道题目并非常规的走迷宫,这道题一个格子可以反复走,朝多个方向走,只需要统计从起点出发,最多可以覆盖多少个格子就可以了。所以标记完之后不需要回溯,而且整个迷宫相当于被分成了很多块,从一个点出发的覆盖到的格子们构成每个不同的连通块。这些格子们都是相互连通的,他们所能覆盖到的最大块数是相同的,这就可以标记一下,方便减少搜索时间。2.AC代码#include <iostream>#include <algorithm>#include <stdlib.h>原创 2020-10-06 11:38:53 · 174 阅读 · 0 评论 -
洛谷P1135 奇怪的电梯
1.原题2.分析这道题在网上找一般都是用BFS解答,用BFS可以很方便的求最少步数。但老师要求用DFS解答来联系回溯剪枝。这道题目和 加1乘2平方 很相似,只有两个状态:上和下。N最大为200,如果不剪枝的话,有2^200次递归,很容易就爆栈了。3.AC代码#include <iostream>#include <algorithm>#include <stdlib.h>#include <cstring>#include <s原创 2020-10-03 18:01:38 · 189 阅读 · 0 评论