上一页 1 ··· 7 8 9 10 11 12 13 14 15 16 下一页
摘要: 这是一道非常不错的题目,融合了多种算法。 首先这是一道单源最短路问题,一个显然的做法就是直接用相关的算法解决,但是本题有负权边,所以我们不能用dijstra算法,只能用spfa,但是如果数据是精心设计,那么spfa算法很可能被卡死,所以简单的单源最短路算法无法直接通过本题。 仔细分析,这道题有一个特 阅读全文
posted @ 2019-04-26 20:12 AD_shl 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 有关于最短路的题目。 我们先将将读入的原图存储下来,在存储一张原图的反向图,之后再进行一些操作。 我们在原图上求出一个数组d,其中d[i]表示从起点到i经过的点权最小的值,同理,我们在反向图上求出一个数组f,表示从终点到i经过的点权最大的值,这样一来,答案便是max(f[i]-d[i]). 我们在原 阅读全文
posted @ 2019-04-26 15:26 AD_shl 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 这是一道树形dp的基本模型——树的最大独立集问题。 这种基本模型的解法是这样的:定义f[i][1/0]表示在以i为根的子树中,i选/不选的最小代价是多少,那么答案是min(f[0][1],f[0][0])。 考虑状态转移,对于i的每一个儿子j,若i选择,那么j可选可不选,如果i不选,那么j一定选。 阅读全文
posted @ 2019-04-26 10:26 AD_shl 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 一道多重背包的简化版问题,把多重背包的最优性问题简化为可行性问题,计算时只需将取最优值的一步改为或运算即可。 本题有解的条件:所有物品价值的一半能被表示出来。 本人使用了最简单的二进制优化即可通过本题。 1 #include <iostream> 2 #include <cstdio> 3 #inc 阅读全文
posted @ 2019-04-25 21:49 AD_shl 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 一道别样的区间dp,重点在于对字符串的处理。 读完题,我们很自然的想到区间dp,定义f[i][j]表示从折叠i~j的部分的最小长度,那么答案为f[1][n]。 区间dp的转移一般而言都是一样的,在区间中枚举一个位置,使这一个大区间分成两个小区间。因此状态转移方程我们不在赘述。 我们重点探讨一下对于字 阅读全文
posted @ 2019-04-25 20:58 AD_shl 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 本人NOIP的考试题……也是我NOIP2018唯一爆零的题目,正因如此,本人无缘NOIP2018一等奖。 少年醒醒,都9012年了,还搞什么啊,赶紧想正解…… 本题的结构是一个树形的,因此我们可以用树形结构的相关知识解答。 本题的题目为“最小值最大”显然是二分答案的提示,因此我们二分答案最短的一条路 阅读全文
posted @ 2019-04-25 16:57 AD_shl 阅读(427) 评论(0) 推荐(0) 编辑
摘要: Sublime Text 3是一款优雅的文本编辑器,功能强大,支持各种语言,如果能够熟练地使用代码效率将大大提高。但是搭建相关的编译环境不是一件容易的事情。 本人是一名信竞选手,平时使用Sublime,鉴于网上各大博客的方法都有所不足,本人决定写一篇通俗易懂的入门教程。 本人的电脑为Win10 64 阅读全文
posted @ 2019-04-18 15:23 AD_shl 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 一道线型dp的题目 每一种卡片有一定的数量限制,也就是说在计算到某一个状态时应当知道每一个卡片能不能用,所以我们定义状态f[i][j][k][l]表示第一种卡片用i张,第二张卡片用j张……所得到的最大值。 对于每一个状态,考虑他是怎样转移的。若当前状态为f[i][j][k][l],那么当前的状态可以 阅读全文
posted @ 2019-04-18 10:05 AD_shl 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 有关树形dp+二次扫描与换根法 首先我们读入数据,用邻接表存储,并记录每一个点相连的边的数量。 我们不妨先暂时假定节点1为树根,定义d[x]表示在以x为根的子树当中最大的流量,显然得出状态转移方程 d[x]=∑min(d[y],c(x,y)) 其中y∈son(x). 求出了d数组,我们考虑“二次扫描 阅读全文
posted @ 2019-04-17 22:56 AD_shl 阅读(228) 评论(0) 推荐(1) 编辑
摘要: 一道非常棒的搜索题,做完之后感觉神清气爽…… 可以肯定的是,本题属于走地图一类的搜索题,适合用bfs求解,然而本题细节极多,有很多需要注意的地方。 我们定义状态三元组(x,y,z)表示当前移动到位置(x,y),且朝向z(我们不妨假定z=0意味着长方体立在地面上,z=1 意味着长方体横躺,x,y表示左 阅读全文
posted @ 2019-04-14 11:13 AD_shl 阅读(226) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 16 下一页