上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 70 下一页
摘要: 疯狂re 换了一种写法才过。。。 思路:将x轴离散化,处理出来每个点上下左右一个有多少个点, 对于同一行的两个点来说,他们之间的 这些空的点都是可以一起算的,我们用树状数组按y轴从小到大维护 每一列的贡献和。。 阅读全文
posted @ 2018-06-03 16:45 NotNight 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 思路:看出跟dfs的顺序有关就很好写了, 对于一棵树来说确定了起点那么访问点的顺序就是dfs序,每个点经过 其度数遍,每条边经过2边, 那么我们将边的权值×2加上两端点的权值跑最小生成树,最后加上一个最小的点的 权值最为dfs的起点。 阅读全文
posted @ 2018-06-03 12:59 NotNight 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 思路:dp[ i ] 表示 排序后前 i 个元素匹配的最小值, 我们可以发现每个点和它匹配的点的距离不会超过2,这样就能转移啦。 阅读全文
posted @ 2018-06-03 00:44 NotNight 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你一个树的直径k,要求每个点的度数不超过3, 问你有多少棵树满足条件。 思路:好难啊。 主要思想就是将一棵无根二叉树树划分成有根二叉树。 我们对k的分奇偶讨论: 我们定义dp[ i ] 为深度为 i 的有根二叉树的种数, sum 为 dp 的前缀和。 1.当k为偶数时,我们按直径的一般划 阅读全文
posted @ 2018-06-02 21:16 NotNight 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 感觉这个状压dp比较难想。。 dp[ i ][ s ][ k ] 表示前i - 1个都排好了, 从i开始的7个的取没取的状态为s, 且最后一个相对i的位置为k的最少花费。 状态转移方程 if(s & 1) dp[ i + 1][s >> 1][ k - 1] = min(dp[ i + 1][s > 阅读全文
posted @ 2018-06-01 18:38 NotNight 阅读(173) 评论(0) 推荐(0) 编辑
摘要: sb dp 没啥好说的。。 阅读全文
posted @ 2018-05-31 23:56 NotNight 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 思路:比较裸的状压 dp[ i ][ s ][ 0 ] 表示已经加入的牛的情况为s, 最后一个为i 的 混乱种数, dp[ i ][ s ][ 1 ]表示不混乱种数。 阅读全文
posted @ 2018-05-31 23:39 NotNight 阅读(126) 评论(0) 推荐(0) 编辑
摘要: n >= 6 的时候减3, 最后分类讨论, 上个Java 阅读全文
posted @ 2018-05-31 21:48 NotNight 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 思路:好难想啊, 考虑到应该从每个数字只有5个数字下手, 但是不知道到底该怎么写。。 首先我们将第一个串按数字的种类分类, 每一类里面有5个, 然后将第二个串里面的数字一个一个加,如果一个加入的第 i 个数为5, 那么也只会对第一个串中的 5 产生影响, 如果第一个串中5的位置为pos, 那么显然d 阅读全文
posted @ 2018-05-31 21:26 NotNight 阅读(112) 评论(0) 推荐(0) 编辑
摘要: sb 线段树 阅读全文
posted @ 2018-05-31 19:07 NotNight 阅读(109) 评论(0) 推荐(0) 编辑
上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 70 下一页