摘要: 这题我暂时只会搞一个超时版。 问题是让你求解一块矩形巧克力能不能分成给定的几种面积。 这是一道状压dp题,具体思路就是看横着切以及竖着切可不可行。 但是这样搞会TLE,就连空间也存不下,所以务必要降维。 怎么降维呢,先留个坑,要开始补补数学了。。 接下来要干的事情还有很多,要大致过一下图论(最短路, 阅读全文
posted @ 2017-11-01 20:26 yohanlong 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 这是一道思维层层递进的题。 注意到N最大是100000,C最大是100,所以我们不能设时间复杂度为O(NC)的状态。 只能设O(N)的状态了。 设d(i)为从原点出发,将前i个垃圾全部扫完又回到原点的最小代价。(注意这里设的是从原点出发又回到原点,这是为了状态转移的方便而设) 经典的想法还是把前i个 阅读全文
posted @ 2017-11-01 11:26 yohanlong 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 一道多目标优化题。 一个是要求要在尽量小的节点上放灯,使得所有边都被照亮,这是优化一个最小值,并且这个最小值的优化的优先级最大。 另一个是要求在灯的总数最小的前提下,被两盏灯同时照亮的边数应该尽量大,这是一个最大值的优化。 白书上说,我们可以把这个一个是最小值,一个是最大值的优化改变成两个最小值的优 阅读全文
posted @ 2017-10-31 22:05 yohanlong 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 题意是将n个集合P1,P2,P3,……,Pn分成尽量多组,使得每组中所有集合的并集等于全集。 Pi是对于计算机i及其相邻计算机的集合。 每个组就相当于一项服务。 整个动规相当于对一个集合进行划分。 对于一个集合S,我们枚举它的子集S0,如果S0已经满足了要求,我们就可以把S0从S中划去,再去研究剩下 阅读全文
posted @ 2017-10-31 17:08 yohanlong 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 两个人只能从一个序列的左边起或者右边起连续取数,他的得分为这些数的和,让你求先手最多可以比后手多多少分。 状态的设计: 可以发现无论两个人怎么取,留给下一个人决策的序列一定是连续的,我们可以根据这个性质设状态。 设d[i][j]表示从i到j这些数中,先手能比后手得到的最大分数。(这里我们不规定A、B 阅读全文
posted @ 2017-10-31 10:08 yohanlong 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题意求A、B两个序列的LCS。(A、B所含的元素分别是各不相同的) 两个序列的长度最大是250*250,朴素的LCS的时间复杂度为O(nm),因此会超时。 我们考虑这样一个操作。 对于A={1,7,5,4,8,3,9},B={1,4,3,5,6,2,8,9} 对于B中的每一个数,我们都找到其在A中出 阅读全文
posted @ 2017-10-30 21:58 yohanlong 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 约瑟夫问题的变形 看了网上的题解,这题有一个trick就是每轮删完点后将剩下的点重新编号,从0编到n-1。 这样操作之后,我们就可以对删点前后的两个状态进行递推了。 假设我现在有一排点,编号为0到n-1,现在我从0开始数k个删掉第k个点,也就是删掉点k-1。 剩下的点为0,1,2……k-2,k……, 阅读全文
posted @ 2017-10-30 15:14 yohanlong 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 记一次1500m。 报名的心态是:身为班长不报名校运会十分不好意思。是一种“如果不去做……后果是……”的心态。 检录开始前的心态:喝红牛,抹活络油,喷清凉水。是一种“临时抱佛脚”的心态。 检录时的心态:不要当最后一名+我就是来娱乐一下。是一种“自以为可以‘哀兵必胜’”的心态。 鸣哨前的心态:我就跟着 阅读全文
posted @ 2017-10-26 16:17 yohanlong 阅读(178) 评论(1) 推荐(0) 编辑
摘要: 题意求集合大小为偶数的两两匹配的最小权值和。(比如说定义为两点间的距离) 设di,S 为前i个数,已选的点的集合是S的最小权值和。 容易想到的状态转移方程为 di,S = min{di,S , di-1,s-{i}-{j} + p[i][j]} |i,j∈{S} 但是这样每一次转移都要枚举i,j,再 阅读全文
posted @ 2017-10-25 22:05 yohanlong 阅读(847) 评论(0) 推荐(0) 编辑
摘要: 题意: 对于一棵有N个结点的无根树,选出尽量多的结点,使得任何两个结点均不相邻(称为最大独立集)。 Sol:树形dp 由于每个点只由其儿子或者孙子决定(二者的最大值),所以我们可以深搜一遍,回溯的时候用当前节点更新其父亲以及父亲的父亲(因为此时该节点的值已经被我们计算出来了),这种由已知贡献给未知的 阅读全文
posted @ 2017-10-25 12:25 yohanlong 阅读(1224) 评论(0) 推荐(0) 编辑