10 2017 档案
摘要:一道多目标优化题。 一个是要求要在尽量小的节点上放灯,使得所有边都被照亮,这是优化一个最小值,并且这个最小值的优化的优先级最大。 另一个是要求在灯的总数最小的前提下,被两盏灯同时照亮的边数应该尽量大,这是一个最大值的优化。 白书上说,我们可以把这个一个是最小值,一个是最大值的优化改变成两个最小值的优
阅读全文
摘要:题意是将n个集合P1,P2,P3,……,Pn分成尽量多组,使得每组中所有集合的并集等于全集。 Pi是对于计算机i及其相邻计算机的集合。 每个组就相当于一项服务。 整个动规相当于对一个集合进行划分。 对于一个集合S,我们枚举它的子集S0,如果S0已经满足了要求,我们就可以把S0从S中划去,再去研究剩下
阅读全文
摘要:两个人只能从一个序列的左边起或者右边起连续取数,他的得分为这些数的和,让你求先手最多可以比后手多多少分。 状态的设计: 可以发现无论两个人怎么取,留给下一个人决策的序列一定是连续的,我们可以根据这个性质设状态。 设d[i][j]表示从i到j这些数中,先手能比后手得到的最大分数。(这里我们不规定A、B
阅读全文
摘要:题意求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中出
阅读全文
摘要:约瑟夫问题的变形 看了网上的题解,这题有一个trick就是每轮删完点后将剩下的点重新编号,从0编到n-1。 这样操作之后,我们就可以对删点前后的两个状态进行递推了。 假设我现在有一排点,编号为0到n-1,现在我从0开始数k个删掉第k个点,也就是删掉点k-1。 剩下的点为0,1,2……k-2,k……,
阅读全文
摘要:记一次1500m。 报名的心态是:身为班长不报名校运会十分不好意思。是一种“如果不去做……后果是……”的心态。 检录开始前的心态:喝红牛,抹活络油,喷清凉水。是一种“临时抱佛脚”的心态。 检录时的心态:不要当最后一名+我就是来娱乐一下。是一种“自以为可以‘哀兵必胜’”的心态。 鸣哨前的心态:我就跟着
阅读全文
摘要:题意求集合大小为偶数的两两匹配的最小权值和。(比如说定义为两点间的距离) 设di,S 为前i个数,已选的点的集合是S的最小权值和。 容易想到的状态转移方程为 di,S = min{di,S , di-1,s-{i}-{j} + p[i][j]} |i,j∈{S} 但是这样每一次转移都要枚举i,j,再
阅读全文
摘要:题意: 对于一棵有N个结点的无根树,选出尽量多的结点,使得任何两个结点均不相邻(称为最大独立集)。 Sol:树形dp 由于每个点只由其儿子或者孙子决定(二者的最大值),所以我们可以深搜一遍,回溯的时候用当前节点更新其父亲以及父亲的父亲(因为此时该节点的值已经被我们计算出来了),这种由已知贡献给未知的
阅读全文
摘要:同样是紫书上的题。 紫书上并没有给出每一个三角形所贡献的的权值的计算方法,我这里就擅作主张,定义成点权的乘积和好了。 那么做法是DP,这里注意设状态的方式(我这么设是为了使需要求解的问题区间变得连续)。 记Vi 为第i个顶点。 设Ti, j 为Vi-1到Vj的最小积和。 Ti, j = min{Ti
阅读全文
摘要:由于我不会矩阵,所以这道DP我是根据方程直接写的。 f(i,j) = min(f(i,k) + f(k + 1, j) + a[i - 1] * a[k] * a[j]) 在实现技巧上应用了记忆化搜索。
阅读全文
摘要:思路完全模仿lrj白书。 25题斩。 具体而言,我们发现两个矩形之间是包含关系,比如说A包含于B,我们可以认为,A可以推出B,同理若B可以推出C,则A也可以推出C。 这就好像是一个DAG,于是本题转化成了求DAG上的最长路问题。 我们只需要对于每一个点都dp一下就好了。
阅读全文
摘要:奇偶性转成xor问题 map的应用,xor到集合的映射使问题大大简化。 bitcount()的写法 中途相遇法的应用。
阅读全文
摘要:题意是求最大子立方体的和 Sol 降维 + 二维前缀和。 即是对于某一维,比如x,我们把(y,z)的二维前缀和保存在x里面。 也就是这一句。 然后整一个O(n5)的枚举,对x进行dp。(这样实际上也可以理解为用三维表示了一个立方体) 本题还有一个坑点,不要把inf开太小,对于最大数小于231的题目,
阅读全文
摘要:题意是给出平面上的n个点,找一个矩形使得边界上包含的点最多。 Sol 经典套路是减小枚举的范围。 最暴力的方法是枚举四条边界然后O(n)判断,一共的时间复杂度是O(n5)。 优化的方法是只枚举矩形的上下边界,用奇技淫巧确定左右边界。(一种类似前缀和的思想) 枚举完上下边界之后只需要O(n)扫一遍处理
阅读全文
摘要:题意是求最短子序列使得和>=给定的S,ai>=0。 前缀和是必然的,因为涉及到子序列和。 尝试枚举终点,对于终点j,只需要找到满足Bj - Bi-1 >= S的最大的i。(因为长度要尽量短) 由于Bn是递增的,那么随着j的增大,相应的i也要增大。 故用一个单调栈实现即可。 实现见代码
阅读全文
摘要:题面见lrj蓝书。 这题学习了三个东西。 1.stringstream http://www.cnblogs.com/yohanlong/p/7700281.html 2.STL太慢。 3.Floyd判圈算法。 大意是让两个跑步速度不同的小孩往前跑,如果路径有环,那么跑得快的一定会追上跑得慢的。 如
阅读全文
摘要:这个东西贼有用,大意是方便地实现了字符串与数字的互相转化。 头文件: 定义: 那么怎么转换呢? 这样就可以了,现在ss里面就保存了int型x的信息。 那么怎么把它变成一个字符串呢? 这时s就是x的字符串表示了。很像cin/cout的一个东西。 字符串转int型反过来处理就可以了。 值得注意的一点是,
阅读全文
浙公网安备 33010602011771号