04 2019 档案

摘要:01背包问题 题目:有n件物品需要放入一个容量为v的背包,第i件物品的体积为vi,他的价值为wi,求解将哪些物品装入背包可以使得总价值最大。 题目特点:每种物品只有一件,可以选择或者不放。 用子问题定义状态:即用dp[ i ][ j ] 表示前i件物品恰放入一个容量为 j 的背包可以获得的最大价值。 阅读全文
posted @ 2019-04-28 14:42 Cruel_King 阅读(175) 评论(0) 推荐(0) 编辑
摘要:学习带权并查集之前我们需要先对并查集和路径压缩压缩了解,有需求的可以参考这篇博客。 刚昨天总结了并查集的相关操作,今天做题的时候居然发现自己一直都是存在一些想不到的地方,总是会存在一些漏洞,最骚的是今天做到了食物链这道题......才知道了带权并查集和种类并查集......好了接下 来就要进入带权并 阅读全文
posted @ 2019-04-17 13:49 Cruel_King 阅读(1374) 评论(0) 推荐(0) 编辑
摘要:Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 43199 Accepted: 17800 Description An earthquake takes place in Southeast 阅读全文
posted @ 2019-04-16 11:33 Cruel_King 阅读(170) 评论(0) 推荐(0) 编辑
摘要:麻麻,我们班的孩子都分为好几个帮派,我要怎么做才能知道他们总共分了有几个帮派呀,我要怎么才能知道他们有没有人同时在两个帮派呀; 接下来就进入我们的并查集专题,英文名称Union-Find。 并查集是一种用于不相交集合的数据结构,并查集通过几个操作来建立,修改,查找和维护一些不相交的集合,一般用于不相 阅读全文
posted @ 2019-04-15 20:53 Cruel_King 阅读(1148) 评论(0) 推荐(1) 编辑
摘要:Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 40407 Accepted: 11367 Description During the kindergarten days, flymouse was the m 阅读全文
posted @ 2019-04-15 00:38 Cruel_King 阅读(196) 评论(0) 推荐(0) 编辑
摘要:在一个差分约束系统中,线性规划矩阵A的每一行包括一个-1 和一个 1 ,其余所有项皆为0, 因此,由Ax <= b所给出的约束条件变为m个涉及n个变量的差额限制条件,其中的每个约束条件是一个简单的线性不等式:xj - xi <= bk;这里(1 <= i, j <= n, i != j, 1 <= 阅读全文
posted @ 2019-04-14 21:46 Cruel_King 阅读(574) 评论(0) 推荐(0) 编辑
摘要:Cow Contest Description N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, some cows code b 阅读全文
posted @ 2019-04-14 17:34 Cruel_King 阅读(147) 评论(0) 推荐(0) 编辑
摘要:Floyd-Warshall算法是用来求解所有结点对最短路径的知名算法,其还有一个重要的用途就是求解有向图的传递闭包,下面就让我来介绍算法导论中关于有向图闭包计算的有关记载吧。 有向图的传递闭包:我们定义图G的传递闭包为图G* = (V, E*);其中E* ={ (i, j) :如果图G中包含一条从 阅读全文
posted @ 2019-04-14 17:01 Cruel_King 阅读(1019) 评论(0) 推荐(1) 编辑
摘要:原文链接 首先我们了解一种数据结构,前向星,是以存边的方式存图的。我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了.用len[i]来记录所有以i为起点的边在数组中的存储长度.用head 阅读全文
posted @ 2019-04-13 09:51 Cruel_King 阅读(155) 评论(0) 推荐(0) 编辑
摘要:本题思路:每完成一次交换之后交换余额多于原钱数则存在正环,输出YES即可。 参考代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <queue> 5 using namespace std; 6 阅读全文
posted @ 2019-04-13 01:21 Cruel_King 阅读(222) 评论(0) 推荐(0) 编辑
摘要:本题思路:主要是建图比较麻烦,因为结点可以在层与层之间走动,也可以在边上进行走动,所以主要就是需要找到一个将结点和层统一化处理的方法。 所以我们就可以对于存在边的结点建边,层与层之间如果层数相差一也建一条权值为c的边,相同层数之间的也建一条权值为零的边,接着Dijkstra即可。 参考代码:spfa 阅读全文
posted @ 2019-04-12 20:13 Cruel_King 阅读(158) 评论(0) 推荐(0) 编辑
摘要:本题思路:对原图和原图的逆图分别用一次最短路,找出最大值即可。 一开始是我是对每个顶点spfa搜了一波,结果判题时间巨长,还好这个题的数据量不是很大,所以就用了另一种思路。 参考代码:spfa单结点爆搜版 1 #include <iostream> 2 #include <cstring> 3 #i 阅读全文
posted @ 2019-04-11 13:25 Cruel_King 阅读(161) 评论(0) 推荐(0) 编辑
摘要:本题思路:最短路变形,改变松弛方式即可,dist存的是源结点到当前结点的最长路的最小权值。 参考代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define INF 0x3f3f3f3f 5 using n 阅读全文
posted @ 2019-04-11 10:15 Cruel_King 阅读(179) 评论(0) 推荐(0) 编辑
摘要:做到了这个题,感觉网上的博客是真的水,只有kuangbin大神一句话就点醒了我,所以我写这篇博客是为了让最短路的入门者尽快脱坑...... 本题思路:本题是最短路的变形,要求出最短路中的最大跳跃距离,基本思路与最短路一样,dist数组为当前点到源结点最短路的最大距离,这样的话我们知道只需要改变松弛方 阅读全文
posted @ 2019-04-11 09:26 Cruel_King 阅读(526) 评论(0) 推荐(0) 编辑
摘要:昨天刚学习完最短路的算法,今天开始练题发现我是真的菜呀,居然能忘记邻接表是怎么写的,真的是菜的真实...... 为了弥补自己的菜,我决定这道题我就要用五种办法写出,并在Dijkstra算法堆优化中另外给出邻接表存储实现的操作,唉,真是令人窒息...... 言归正传吧,毕竟我这么菜,也不会讲什么大道理 阅读全文
posted @ 2019-04-10 08:36 Cruel_King 阅读(251) 评论(0) 推荐(0) 编辑
摘要:这里感谢百度文库,百度百科,维基百科,还有算法导论的作者以及他的小伙伴们...... 最短路是现实生活中很常见的一个问题,之前练习了很多BFS的题目,BFS可以暴力解决很多最短路的问题,但是他有一定的局限性,该算法只能用于无权重即权重为单位权重的图,那么下面我们会介绍五种用途更广泛的算法...... 阅读全文
posted @ 2019-04-08 20:11 Cruel_King 阅读(648) 评论(0) 推荐(0) 编辑
摘要:本题大意:在一个n * n的迷宫内进行移动,左上角为初始位置,每次可以走的步数不能超过m,并且每次走的方格上面的数字要大于前一次走的放个数字,不能走到格子外面,问如何能使得到的数字和最大。 本题思路:dfs记忆化搜即可。 参考代码: 1 #include <iostream> 2 #include 阅读全文
posted @ 2019-04-04 10:04 Cruel_King 阅读(120) 评论(0) 推荐(0) 编辑
摘要:本题大意:和LIS一样 本题思路:用dp[ i ]保存前 i 个数中的最长递增序列的长度,则可以得出状态转移方程dp[ i ] = max(dp[ j ] + 1)(j < i) 参考代码: 1 #include <iostream> 2 #include <cstring> 3 #include 阅读全文
posted @ 2019-04-03 13:45 Cruel_King 阅读(131) 评论(0) 推荐(0) 编辑
摘要:本题大意:排队排票,每个人只能自己单独购买或者和后面的人一起购买,给出k个人单独购买和合买所花费的时间,让你计算出k个人总共花费的时间,然后再稍作处理就可得到答案,具体格式看题意。 本题思路:简单dp,用dp[ i ]来存储前i个人购买票所需要的最小时间,则很容易得出状态转移方程为dp[ i ] = 阅读全文
posted @ 2019-04-03 13:25 Cruel_King 阅读(153) 评论(0) 推荐(0) 编辑
摘要:本题大意:给定一定数量的数对,每个数保存着一只老鼠的质量和速度,让你求出一个最长序列,这个序列按照质量严格递增,速度严格递减排列,让你输出这个序列的最长长度,并且输出组成这个最长长度的序列的对应的老鼠的编号... 本题思路:看到最长序列,可以想到是LIS的变形,然后需要打印路径,那我们只需要回溯思想 阅读全文
posted @ 2019-04-02 23:34 Cruel_King 阅读(196) 评论(0) 推荐(0) 编辑
摘要:看到网上大多都是逆向的总结,我来搞个正向的吧... 这道题想着是和数字三角形差不多的,但是最后愣是没有写出来,感受到一股菜意......哭唧唧.jpg 本题大意: 给定n个序列,每个序列包含两个数表示第t s时坐标x有食物下落,初始时人在坐标为5的位置,人每秒只能移动一个单位,当所有食物下落后,问人 阅读全文
posted @ 2019-04-02 20:55 Cruel_King 阅读(254) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示