摘要: 最少拦截系统 "HDOJ 1257" 我做这题的思路就是采用暴力或者贪心。也就是每次循环选出从第一个未被选择的元素开始,依次把后面可以选择的元素作为一个系统。最后统计可以有多少个系统。 还有人的思路就是利用动态规划的思路,求解最长上升子序列,也就是反着题意来求。因为在这个最长上升子序列中,所有的元素 阅读全文
posted @ 2019-10-08 09:52 Garrett_Wale 阅读(83) 评论(0) 推荐(0) 编辑
摘要: Tickets "HDOJ 1260" 阅读全文
posted @ 2019-10-08 09:15 Garrett_Wale 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 免费陷阱 "HDOJ 1176" 一开始正向推的时候,一直wa,后来采用逆向推得到正确结果。 初始化的时候dp数组都初始化为0。 include using namespace std; const int INF=0X3F3F3F3F; const int maxn=100005; const i 阅读全文
posted @ 2019-10-07 21:19 Garrett_Wale 阅读(146) 评论(0) 推荐(0) 编辑
摘要: Piggy Bank "HDOJ 1114" 本题就是完全背包的模板题,注意复习一下关于背包九讲中的问什么这里使用的是顺序遍历。 还需要注意的一个问题就是初始化的问题,dp[0]初始化为0,其他的初始化为无穷大。因为最后的状态是背包一定是满的。(具体看背包九讲的ppt的解释) //完全背包的问题 i 阅读全文
posted @ 2019-10-07 20:23 Garrett_Wale 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 成绩排序 "成绩排序" 这里需要注意的就是超内存的问题。 解决方法就是通过指针的方式,每次动态开n大小的内存,而不是一开始就分配。 include using namespace std; int n; const int maxn=1e6+6; struct node{ string name; 阅读全文
posted @ 2019-09-15 10:55 Garrett_Wale 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 压缩编码 "201612 4" 一开始看这题还以为是哈夫曼编码的题目,结果是哈夫曼题目的变形。 哈夫曼编码是每次合并任意两堆石子,而这里的题目是合并相邻的两堆石子,而且这里的合并花费是合并两堆石子加上所有的叶子结点。 参考图解:https://blog.csdn.net/more_ugly_less 阅读全文
posted @ 2019-09-15 09:46 Garrett_Wale 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 引水入城 "201703 5" 这从题目分析来看很像最大流的问题,只需要增加一个超级源点和一个超级汇点就可以按照题意连边再跑最大流算法。 因为数据量太大了,肯定会超时。但是没有想到可行的解决方法。 include using namespace std; const long long INF=0X 阅读全文
posted @ 2019-09-08 11:03 Garrett_Wale 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 地铁修建 "201703 4" 这题就是最短路的一种变形,不是求两点之间的最短路,而是求所有路径中的最长边的最小值。 这里还是使用d数组,但是定义不同了,这里的d[i]就是表示从起点到i的路径中最长边中的最小值。 在松弛的时候,注意是d[i] max(d[u],cost),max保证了是所有路径中的 阅读全文
posted @ 2019-09-08 09:43 Garrett_Wale 阅读(197) 评论(0) 推荐(0) 编辑
摘要: Jungle Roads "HDOJ 1301" 这是最小生成树的水题,唯一要注意的就是那个n,其实输入只有n 1行。 include include include include include include include using namespace std; const int INF 阅读全文
posted @ 2019-09-06 21:02 Garrett_Wale 阅读(139) 评论(0) 推荐(0) 编辑
摘要: Borg Maze "POJ 3026" 一开始看到这题是没有思路的,看了题解才知道和最小生成树有关系。 题目的意思是每次走到一个A或者S就可以分为多个部分继续进行搜索。这里就可以看出是从该点分出去的不同路径。 所以首先需要使用bfs求出每对顶点的最短路来,但是在这个过程中,我出了个bug,导致调试 阅读全文
posted @ 2019-09-06 20:28 Garrett_Wale 阅读(210) 评论(0) 推荐(0) 编辑
摘要: Highways "POJ 1751" 注意这里的样例答案也是对的,只是输出顺序改变,但是这也没关系,因为题目加了特殊判断。 阅读全文
posted @ 2019-09-06 12:28 Garrett_Wale 阅读(234) 评论(0) 推荐(0) 编辑
摘要: Arctic "POJ 2349" 这题是最小生成树的变形题目。题目的意思是已经有s个卫星频道,这几个卫星频道可以构成一部分的网络,而且不用费用,剩下的需要靠d的卫星接收器。题目要求的就是最小生成树中,最大的边的长度。 题目中的传入kruskal函数里面的sn表示还需要连接的顶点个数,因为剩下的可以 阅读全文
posted @ 2019-09-06 12:04 Garrett_Wale 阅读(204) 评论(0) 推荐(0) 编辑
摘要: Tram "POJ 1847" 这里其实没有必要使用SPFA算法,但是为了巩固知识,还是用了。也可以使用dijikstra算法。 阅读全文
posted @ 2019-09-06 10:58 Garrett_Wale 阅读(143) 评论(0) 推荐(0) 编辑
摘要: frogger "POJ 2253" 这题的代码特别像prim求解最小生成树的代码,其实两者本来也很像。 这里的d数组不再维护的起点到该点的最短距离了,而是路径中的最长距离。 include include include include include include include using 阅读全文
posted @ 2019-09-05 19:55 Garrett_Wale 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 昂贵的婚礼 "POJ 1062" 这道题目一开始看的时候难以理解,但是仔细想,还是可以和最短路联系的,我觉得类似于硬币交换等问题。 以下需要注意几个点,第一就是因为题目规定如何和超出了等级限制的人交易,则拒绝交易。也就是说符合交易条件的人一定和第一个人(国王)之间的等级差距小于m。 这里通过枚举等级 阅读全文
posted @ 2019-09-05 19:03 Garrett_Wale 阅读(618) 评论(0) 推荐(0) 编辑
摘要: Marriage Match IV "HDOJ 3416" 这题的题意就是要找两点之间最短路的路径个数,而且边不能重复。 最大流和最短路的结合。首先正向和反向建图,再跑两遍dijikstra。到这里就求出来起点到某一点的最短路以及某一点到终点的最短路。 还有一个关键的公式就是如何判断一条边是否在最短 阅读全文
posted @ 2019-09-05 16:51 Garrett_Wale 阅读(192) 评论(0) 推荐(0) 编辑
摘要: The Shortest Path in Nya Graph "HDOJ 4725" 这题是关于最短路的问题,但是和常规的最短路有点不同的就是这里多了层次这一结构。 为了解决这一问题可以把每一层抽象或者划分为两个点:入点和出点。 对于每个点,将所在层的入点和该点相连,再将该点和所在层的出点相连,权值 阅读全文
posted @ 2019-09-05 12:05 Garrett_Wale 阅读(180) 评论(0) 推荐(0) 编辑
摘要: Extended Traffic "LightOJ 1074" 这题因为涉及到减法和三次方,所以可能会出现负圈。 这里使用的算法叫做SPFA算法,这个可以用来判负圈和求解最短路。Bellman Ford算法和SPFA算法很相似。 这里要注意的是cnt出现次数应该要在哪里加。 include incl 阅读全文
posted @ 2019-09-04 19:59 Garrett_Wale 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 除法 "201709 5" 这道题有很多种方法来做,最常用的就是线段树和树状数组。 如果使用线段树来做,就会想到区间修改的update函数。但是这里可能会涉及到v是1或者a[j]是0的情况,所以用这种方法会超时,最多50分。 可以修改一下代码,使用点修改来做这道题。在main函数里面增加一个循环,用 阅读全文
posted @ 2019-09-04 08:50 Garrett_Wale 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 通信网络 "201709 4" 一看到题目分析了题意之后,我就想到用floyd算法来求解每一对顶点的最短路。如果一个点和任意一个点都有最短路(不为INF),那么这就是符合的一个答案。可是因为题目超时,只能拿60分。 另一种解法就是使用dfs把图简单的遍历一遍就可以了。这里要用到两遍dfs反着也要建图 阅读全文
posted @ 2019-09-03 20:26 Garrett_Wale 阅读(360) 评论(0) 推荐(0) 编辑