摘要: 这道题显然是一个树上问题,题目让我们求到各个点得逆序边最小的点是哪些 我们对于树形dp,一般来说都有一个边上的权值,那么对于本题,我们就要对题目信息进行转化 所以我们不妨把正向边记作0,逆向边记作1,这样我们就能够通过一次dfs来计算到子树中的各个节点需要多少次逆转 我们可以随便挑1作为根节点 那么 阅读全文
posted @ 2020-04-26 16:40 朝暮不思 阅读(118) 评论(0) 推荐(0)
摘要: 这道题可以设计状态位前i个,用了j块构造k,取j块中的x块这样的状态 有点01背包的意思,每个钱可取可不取,对于j,x都是如此 对于第二维,我们考虑是否取第i个,而对于第三维,我们考虑在第二维是否取得情况下,第三维是否取 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2020-04-26 15:52 朝暮不思 阅读(165) 评论(0) 推荐(0)
摘要: 这道题的easy版本我写的是n^2*26的,对于这题显然不够用。 我们发现上一题我们遍历了很多重复的情况,因为我们是按位置进行遍历的,所以要全部遍历,这次我们优化一下 我们发现个数最多只有200,因此我们按这个作为枚举对象。进一步发现,因为我们枚举的是a这些数作为两边 那么对于每个数,只需要找到他在 阅读全文
posted @ 2020-04-26 11:07 朝暮不思 阅读(142) 评论(0) 推荐(0)
摘要: 这道题数据范围比较小,可以想到一种比较暴力的做法,就是枚举,先用前缀和计算 我们枚举两个端点,将数据分为三段,之后枚举26个字母,就能知道答案是多少 这里有一个小技巧就是,我们在枚举26个字母的时候,就能够算出中间这段的最大值是哪个字母,在这个同时,可以算出两边取哪个更好 #include<bits 阅读全文
posted @ 2020-04-26 10:25 朝暮不思 阅读(179) 评论(0) 推荐(0)