08 2019 档案

摘要:题意:给你一棵树,你需要在这棵树上选择一些点染成黑色,要求染色之后树中任意节点到离它最近的黑色节点的距离不超过m,问满足这种条件的染色方案有多少种? 思路:设dp[x][i]为以x为根的子树中,离x点最近的点的距离是i,并且满足题目中的限制条件的方案数。我们假设已经计算了x的一些子树对x的贡献,我们 阅读全文
posted @ 2019-08-30 19:15 维和战艇机 阅读(312) 评论(0) 推荐(0)
摘要:题意:有一个n * m的棋盘,你初始在点(1, 1),你需要去点(n, m)。你初始有s分,在这个棋盘上有k个点,经过一次这个点分数就会变为s / 2(向上取整),问从起点到终点的分数的数学期望是多少? 思路:按照套路,先把这k个点按照pair的方式进行排序,设dp[i][j]为从起点到点i之前经过 阅读全文
posted @ 2019-08-29 14:50 维和战艇机 阅读(273) 评论(0) 推荐(0)
摘要:题意:有两个小孩玩游戏,每个小孩可以选择一个起始点,并且下一个选择的点必须和自己选择的上一个点相邻,问两个选的点权和的最大值是多少? 思路:首先这个问题可以转化为求树上两不相交路径的点权和的最大值,对于这种问题,我们有两种想法: 1:树的直径,受之前HDU多校的那道题的启发,我们先找出树的直径,然后 阅读全文
posted @ 2019-08-28 23:14 维和战艇机 阅读(275) 评论(0) 推荐(0)
摘要:题意:给你一颗树,你可以把这棵树上的一条边的边权变为0,现在让你选一个根,让所有点到这个点的最大距离尽量的小。如果有多个根的最大距离距离相同,输出编号最小的边。 思路:如果没有把边权变为0的操作,这个题实际上是找树的直径的中心。现在有变为0的操作,很容易想到加一维来标记是否已经把某条边的边权变为0。 阅读全文
posted @ 2019-08-27 18:22 维和战艇机 阅读(445) 评论(0) 推荐(0)
摘要:题意:给你一个序列a, 问a[i] ^ (a[j] & a[k])的最大值,其中i < j < k。 思路:我们考虑对于每个a[i]求出它的最优解。因为是异或运算,所以我们从高位向低位枚举,如果这一位a[i]是0,我们就在a[i]的右边找两个位置让它们按位与起来这位是1。那么,我们贪心的保留可以通过 阅读全文
posted @ 2019-08-27 11:44 维和战艇机 阅读(450) 评论(0) 推荐(0)
摘要:题意:定义两点之间的距离为从一个点到另一个点经过的点数之和(包括这两个点),设二元组(x, y)为两条不相交的路径,一条长度为x,一条长度为y,问二元组(x, y)出现了多少次? 思路:直接上jls的讲解: 基础直径练习题。考虑判断 能不能出现。劼论:任意取树上的一条直径,那么如果 能出现,那么一定 阅读全文
posted @ 2019-08-25 13:52 维和战艇机 阅读(549) 评论(1) 推荐(1)
摘要:题意:给你一个长度为n的字符串,有m次询问,每次询问l到r的子串在原串中第k次出现的位置,如果没有输出-1。n, m均为1e5级别。 思路:后悔没学后缀数组QAQ,其实只要学过后缀数组这个题还是比较好想的。这个问题可以转化为有多少个后缀和后缀l的lcp长度大于等于r - l + 1。我们知道,在后缀 阅读全文
posted @ 2019-08-25 11:28 维和战艇机 阅读(348) 评论(0) 推荐(0)
摘要:题意:给你一张n个点m条边的有向图,问这张有向图的所有路径中第k短的路径长度是多少?n, m, k均为5e4级别。 思路:前些日子有一场div3的F和这个题有点像,但是那个题要求的是最短路,并且k最大只有400。这个题的做法其实是一个套路(没见过QAQ)。 首先把每个点的出边按边权从小到大排序,把每 阅读全文
posted @ 2019-08-23 18:40 维和战艇机 阅读(651) 评论(2) 推荐(0)
摘要:题意:你有n块木头,每块木头有一个高h和宽w,你可以把高度相同的木头合并成一块木头。你可以选择一些木头消去它们的一部分,浪费的部分是 消去部分的高度 * 木头的宽度,问把n块木头变成恰好m块木头至少要浪费多少木料? 思路:把木头从高到第排序,设dp[i][j]为前i块木头合并成了j块木头的最小花费。 阅读全文
posted @ 2019-08-22 16:53 维和战艇机 阅读(382) 评论(0) 推荐(0)
摘要:题意:有n个任务,你的初始rating是m, 这n个任务有两个指标:完成这项任务所需的最低rating(a[i]),以及完成这项任务后rating的变化(可能为负)(b[i])。rating不能为负。F1:问是否存在一种任务完成顺序,始得所有任务都可以被完成,。F2:你可以任意选择一些任务去完成,问 阅读全文
posted @ 2019-08-15 23:51 维和战艇机 阅读(448) 评论(0) 推荐(0)
摘要:题意:给你一个3个数A, B, C问有多少对pair(i, j),1 <= i <= A, 1 <= j <= B, i AND j > C或 i XOR j < C。A, B, C范围为1e9. 思路:场上一看以为是推式子加什么筛做,无果。之后才知道是数位DP(以下思路来自学长的代码orz)。首先 阅读全文
posted @ 2019-08-08 23:47 维和战艇机 阅读(482) 评论(0) 推荐(1)
摘要:题意及思路:https://blog.csdn.net/mengxiang000000/article/details/52472696 代码: 阅读全文
posted @ 2019-08-06 12:27 维和战艇机 阅读(129) 评论(0) 推荐(0)
摘要:题意:有一个n * n的棋盘,每个棋盘有某些矩形区域被染成了黑色(这些矩形区域有可能相交),问把所有黑色区域染成白色的最小花费是多少?你每次可以选择把一个矩形区域染成白色,花费是染色的矩形区域长和宽的最小值。 思路:容易发现,假设一个矩形的坐标是(l1, r1, l2, r2),假设(l2 - l1 阅读全文
posted @ 2019-08-02 20:53 维和战艇机 阅读(573) 评论(3) 推荐(0)
摘要:题意:给你n个数,现在让你选择一个数目最大的集合,使得集合中任意两个数的二进制表示至少有两位不同,问这个集合最大是多大?并且输出具体方案。保证n个数互不相同。 思路:容易发现,如果两个数不能同时在集合中,这两个数的二进制表示一定只有一位不同(因为n个数互不相同,所以一定不会有两个数的二进制位一定相同 阅读全文
posted @ 2019-08-02 00:12 维和战艇机 阅读(329) 评论(0) 推荐(0)