20170520 DP阶段总结】的更多相关文章

DP的力量不是无穷的. 但是,因为它叫做“动态规划”,它在OI界如鱼得水.这个“动态”不是指“离线”与“在线”,也不是什么“可持久化”.它只是把问题抽象为一个个“阶段”,在每一个“阶段”中作出或繁或简的“决策”,并以此实现“状态”与“状态”间的“转移”. 正如紫书所言,动态规划的理论性和实践性都很强,一方面需要理解“状态”."状态转移".“最优子结构”.“重叠子问题”等概念,另一方面又需要根据题目的条件灵活设计算法. “根据题目的条件灵活设计算法”,可以说 希望是本无所谓有,无所谓无的…
打崩了-- 事先说明,今天没有很在状态,所以题解就直接写在代码注释里的,非常抱歉 T1 颜色联通块 此题有争议,建议跳过 题目描述 N 个方块排成一排,第 i 个颜色为 Ci .定义一个颜色联通块 [l,r] 当且仅当 l 和 r 之间(包括l,r)所有方块的颜色相同. 例如 [3,3,3] 有 1 个颜色联通块,[5,2,4,4] 有 3 个颜色联通块. 现在你可以选定一个起始位置 p ,每次将 p 所在颜色联通块的所有方块颜色改成另一种.这个操作可能将两个颜色联通块合并成一个.问最少需要多少…
打崩了-- 事先说明,今天没有很在状态,所以题解就直接写在代码注释里的,非常抱歉 T1 颜色联通块 此题有争议,建议跳过 题目描述 N 个方块排成一排,第 i 个颜色为 Ci .定义一个颜色联通块 [l,r] 当且仅当 l 和 r 之间(包括l,r)所有方块的颜色相同. 例如 [3,3,3] 有 1 个颜色联通块,[5,2,4,4] 有 3 个颜色联通块. 现在你可以选定一个起始位置 p ,每次将 p 所在颜色联通块的所有方块颜色改成另一种.这个操作可能将两个颜色联通块合并成一个.问最少需要多少…
大力dp题. 每行每列最多放两个,考虑用行作为dp阶段. dp[i][j][k]表示i行,有一个的有j列,有两个的有k列. 然后就是分类讨论. 一个都不放,放一个在0出,放一个在1出,放两个在0,放两个在1,放两个在01,大力转移. Code #include<iostream> using namespace std; ][][],ans,mod; inline ))>>;} int main() { cin>>n>>m; mod=; dp[][][]=;…
颓了差不多一周后,决定重开DP 这一周,怎么说,学了学trie树,学了学二叉堆,又学了学树状数组,差不多就这样,然后和cdc一番交流后发现,学这么多有用吗?noip的范围不就是提高篇向外扩展一下,现在向下推进度,该不会写题还是不会,水平能有什么提高,应该老老实实看完DP的所有内容和图论的基本内容,再学学数学,写写oj的题,大概暑假前就干这个吧,累的时候可以去看看莫队和CDQ 然后宣布现在DP内容记录在本章 环形与后效性的处理 例题*1 poj2228 题意:将一天分为N小时,每小时都有一个价值w…
目录 #1. A + B Problem #2. Hello, World! #3. Copycat #4. Quine #7. Input Test #100. 矩阵乘法 #101. 最大流 #102. 最小费用流 #103. 子串查找 #104. 普通平衡树 #108. 多项式乘法 #119. 非负权单源最短路 #130. 树状数组 1 :单点修改,区间查询 #139. 树链剖分 #161. 乘法逆元 2 #556. 「Antileaf's Round」咱们去烧菜吧 #2030. 「SDOI…
Day0: 提前放了一整天假,颓过去了.老吕让我去给B层的讲课,ppt还没做,只能在飞机上赶了QAQ.然后从上午到了衡水就一直在路上或者天上,到了晚上才到学校,然而ppt还是没有做完.还有,鄂尔多斯真TM是温暖全世界...... Day1: 明明零上,为啥这么TM冷,我凑.然后一天就在一脸冷逼中开始了. 吃早饭,我干,四川的饭都是红汤的凑.然后开始考试,一开始考试满脑子四川话,然后冷静了下来,看完题,撒子东西,然后打完暴力,额,算了算大概五六十分.然后开始研究T1,进行了,一系列打表,然后各种推…
原题链接 题目简要分析 N个点,从1号点到N号点求最短路径,且每个点都要遍历到.现在要你求出最优方案. 这道题看到后,首先的想法莫过于搜索.暴力了.这显然不太可能.而进一步思考,使用Floyed和Dijkstra也不太好用,因为题目描述说:"每个点都要遍历到",自然又否决了这个方法.那么怎么办呢? 状态压缩DP 什么是状态压缩? 由于所有点在DP阶段中的状态只有走过( true )和没走过( false ),那么用0.1的二进制表示每个阶段即可. 比如现在有5个点,现在只经过了2.3.…
最大M子段和 题目模型 N个整数组成的序列 \(a_1,a_2,a_3,-,a_n\) ,将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的. 问题分析 方法一: 看到序列,我们首先要尝试用线性dp去处理,线性dp经典状态定义:f[i][j],i一般表示序列的前i个元素,j表示限制,这里表示划分了j个不相交的子段,我们还需要对i进行进一步的定义,即是否包含第i项,因为对当前元素a[i]来说,要么单独成一个子段,要么和最后一个子段合并,所以必须包含第i个元素. 动态转移方程:dp[i]…
Description The cow bicycling team consists of N (1 <= N <= 20) cyclists. They wish to determine a race strategy which will get one of them across the finish line as fast as possible. Like everyone else, cows race bicycles in packs because that's th…