DP
文章平均质量分 53
小胡子Haso
~~
展开
-
【URAL 1776】Anniversary Firework(概率DP)
【URAL 1776】Anniversary Firework(概率DP)题目大意: n个火箭(3原创 2016-11-01 17:35:08 · 768 阅读 · 1 评论 -
【CF 702E】Analysis of Pathes in Functional Graph(倍增)
【CF 702E】Analysis of Pathes in Functional Graph(倍增)题目大意: n个点n条边的有向图,每个点有且只有一个后继。图中一定会有环。问从每个点出发,走k条边,总花费,还有这段路程里的最小边权。每个边每个点可以走多次,从每个点出发走k步为止。k很大,第一反应是找环,找出所有环,然后想办法统计每个点到环的路长,然后……麻烦到吐血= =还搞不出来……virtu原创 2016-10-10 21:56:46 · 1024 阅读 · 1 评论 -
【URAL 1244】Gentlemen(DP+记录路径)
【URAL 1244】Gentlemen(DP+记录路径)题目大意: n张卡片,每张有价值。给出一个价值V,问是否有唯一组合方式组合出V。 有的话输出不在组合里的卡牌编号,没有的话输出0,多解输出-1.01背包+记录一下路径。要拐的一个弯是,对于当前价值,只记录第一次到达时的物品编号。 之后的多解不再记录。因为01背包是枚举物品然后递推得到的,如果是唯一解,dp[v]一定不是0或-1。但从0到原创 2016-10-10 21:04:20 · 1021 阅读 · 1 评论 -
【HackerRank】Fair Cut(DP)
【HackerRank】Fair Cut(DP) 题目大意: n个正整数[1,109][1,10^9] 从中选取k个数作为集合I,剩余n-k个数为集合J 最终价值为两集合间两两数字的距离(差的绝对值)譬如 n = 4 k = 2 4 3 1 2 I = {2,4} J = {1,3} value=|1−2|+|3−2|+|1−4|+|3−4|=6value = |1-2|+|3-2|原创 2016-09-07 17:08:53 · 1664 阅读 · 0 评论 -
【HDU 5890】Eighty seven(bitset+DP+优化)
【HDU 5890】Eighty seven(bitset+DP+优化)题目大意: n张纸牌,每张有分数。 q次询问,每次抽走三张牌,可能有重牌。 问剩下的牌能否拿出恰好十张加和出87赛时想到ans[i][j][k]ans[i][j][k]存 拿走编号i,j,k牌后的答案,这样如果某次询问之前问过,直接输出就好,组合得来不重复的询问大约2W,当时暴力DP,TLE的死死的……反正当时杭电也炸了…原创 2016-09-19 20:35:42 · 742 阅读 · 0 评论 -
【CF 713C】Sonya and Problem Wihtout a Legend(离散化+dp)<POJ 3666变形>
【CF 713C】Sonya and Problem Wihtout a Legend(离散化+dp)说是变形,其实不如说是3666的半个问题+小转弯……3666是求不严格的单调递增或递减,刚写完blog。 这题求严格单调递增。3666是保证a[i]−a[j]>=0 (i>=j)a[i] - a[j] >= 0 \ \ (i >= j) 这题其实是保证a[i]−a[j]>=i−j (i>=j原创 2016-09-14 17:18:16 · 1930 阅读 · 0 评论 -
【POJ 3666】Making the Grade(离散化+DP)
【POJ 3666】Making the Grade(离散化+DP)题目大意: 给出长为n的序列,每次可以选择其中一个元素 +1或-1 问至少几次这种操作,能够将序列变为单调不增或不减序列?元素可以为负。先来求单调不增序列最少操作次数。不减其实也就一样了。 考虑dp[i][j]dp[i][j]为把1~i变为单调不增序列,且第i个元素变为j所需要的最少操作。 这样dp[i][j]=maxk=1原创 2016-09-14 17:10:58 · 1347 阅读 · 0 评论 -
【LightOJ 1030】Discovering Gold(期望DP)
【LightOJ 1030】Discovering Gold(期望DP)题目大意:一个棋盘,1行n列,每个格子有一个价值,从第一个格子出发,每次扔色子,扔几走几,扔过了重新扔,走到n结束,问分数的期望。一直在想正向遍历的方法……想出了个时间爆炸的写法= =死活没想到从后往前……思维僵化啊。。。dp[i]dp[i]表示从i号格子开始能得到分数的期望,这样dp[1]就是答案。dp[i] = dp[i+1原创 2016-09-12 20:03:25 · 831 阅读 · 0 评论 -
【CF 149D】Coloring Brackets(dp)
【CF 149D】Coloring Brackets(dp)D. Coloring Bracketstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputOnce Petya read a problem about a bracket sequen原创 2016-08-10 14:46:57 · 1239 阅读 · 0 评论 -
【CF 140E】New Year Garland(第二类斯特林(Stirling)数+DP+容斥)
【CF 140E】New Year Garland(第二类斯特林(Stirling)数+DP+容斥)E. New Year Garlandtime limit per test5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAs Gerald, Alexander, Sergey原创 2016-08-08 14:45:08 · 1390 阅读 · 0 评论 -
【HDOJ 5800】To My Girlfriend(DP)
【HDOJ 5800】To My Girlfriend(DP)To My GirlfriendTime Limit: 2000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 157 Accepted Submission(s): 49Problem Descripti原创 2016-08-04 21:42:00 · 870 阅读 · 0 评论 -
【HankerRank】LCS Returns(巧妙LCS)
【HankerRank】LCS Returns(巧妙LCS)** LCS Returns Given two strings, and , find and print the total number of ways to insert a character at any position in string such that the length of the Longest Commo原创 2016-08-03 21:53:27 · 988 阅读 · 0 评论 -
【POJ 2955】Brackets(区间DP)
【POJ 2955】Brackets(区间DP)入门级区间DP问最长的匹配括号长度。只包含()和[] 要求匹配括号不可交叉,即([)]这种不计入因为不计交叉情况,转移就很直白。枚举区间长度l,转移为if( (str[i] == '(' && str[i+l-1] == ')') || (str[i] == '[' && str[i+l-1] == ']') ) dp[i][i+l-1]原创 2016-09-21 19:45:26 · 1091 阅读 · 0 评论 -
【HDU 4283】You Are the One(区间DP)
【HDU 4283】You Are the One(区间DP)读错了发题意……原意是n个人的队列,不断出队,每次可以直接拿走,或者暂存在一个临时栈里。离开一个人需要1s,每个人的愤怒值与它的等待时间(在它前离开的人的数量k)成正比,为val[i]*k,val[i]为第i个人的愤怒比率问怎样巧妙的运用这个栈,让总的愤怒值最少。万万没想到是区间DP……对于这种队列和栈互搞的可以找到一个规则: 第i个人原创 2016-09-21 20:47:42 · 1106 阅读 · 0 评论 -
【URAL 1513】Lemon Tale(DP+高精度)
【URAL 1513】Lemon Tale(DP+高精度)题目大意:找出’L’和’B’组成的长N的串,满足连续的’L’的个数不超过M个的方案数。考虑dp[i][j](1≤i≤n,0≤j≤m)dp[i][j](1 \le i \le n,0 \le j \le m)表示遍历到第i个位置时,连续有j个’L’的方案数。 转移为dp[i][0]=∑0≤j≤mdp[i−1][j],dp[i][j]=dp[i原创 2016-11-01 15:31:38 · 884 阅读 · 1 评论 -
【URAL 1900】Brainwashing Device(预处理区间和+DP)
【URAL 1900】Brainwashing Device(预处理区间和+DP)题目大意: n个城市1~n,第i座城市与i+1有一条路。 第i个城市往i+1~n每座城市都有客流量,每个人如果从i->j,要经过i与j间每一条边一次。 政府决定缩短k条道路的距离(1原创 2016-11-16 13:12:36 · 1072 阅读 · 1 评论 -
【HDU 5945】Fxx and game(DP+单调队列)
【HDU 5945】Fxx and game(DP+单调队列)啊啊啊啊啊啊啊。。。BC第二题就这么难了……好菜啊……这游戏没法玩了啊……。。。膜一下队伍主力 金QAQ巨。。。现两号BC金。。Orz……@a1s4z5顺吐槽一发……大家BC页面会卡么……宿舍进BC卡得要死……具体卡成什么样子……校园网进不去热点也卡的要命,耐心等待题面一帧帧 浮现 出来……然后已经被甩出去好几条街了……然后……咦……这A原创 2016-10-31 17:57:31 · 963 阅读 · 1 评论 -
【URAL 1658】1658. Sum of Digits(DP)
【URAL 1658】1658. Sum of Digits(DP)题目大意: 定义s1为n的每位数字的加和。 s2为n的每位数字的平方和。给出s1,s2,输出最小的n。如果不存在或者长度超过100,输出No solution。dp[i][j]表示加和为i,平方和为j的最短长度。预处理出来所有的加和和平方和的组合,然后存一下每个最小转移添加的数字。因为长度超过100输出No solution。所原创 2016-10-07 16:42:11 · 880 阅读 · 1 评论 -
【URAL 1635】Mnemonics and Palindromes(区间DP+记录路径)
【URAL 1635】Mnemonics and Palindromes(区间DP+记录路径)题目大意: 长度不超4000的串,分割成尽量少的回文串,并输出。n^2的预处理出每个区间是否为回文串,区间dp的方式,枚举子串长,枚举子串起点,然后判断即可。之后就是套路的贪心……ans[i]表示子串[1,i]能分割成的最少回文串的数量。然后记录一下切割点。递归输出。代码如下:#include原创 2016-10-07 14:50:46 · 1016 阅读 · 1 评论 -
【UVALive 7505】Hungry Game of Ants(DP)
【UVALive 7505】Hungry Game of Ants(DP)题目大意: 一条链上n只蚂蚁,第i只蚂蚁的weight为i。每只蚂蚁会选择一个初始方向,向左或向右。两只蚂蚁相遇时,大体重的蚂蚁会吃掉小体重蚂蚁,并增加上小体重蚂蚁的体重。如果两只蚂蚁体重相同,左边的会吃掉右边的。最左最右为边界,蚂蚁碰到边界会掉头。现在给所有蚂蚁定义初始方向,问有多少中方案能让第K只蚂蚁最终存活下来。首先明原创 2016-10-28 19:44:27 · 1777 阅读 · 1 评论 -
【URAL 1183】Brackets Sequence(区间DP+路径记录)
【URAL 1183】Brackets Sequence(区间DP+路径记录)题目大意:定义合法的匹配括号不可交叉。 问将给出的括号串变为合法匹配至少需要添加多少括号,输出转换出的合法匹配括号串。只问最少添加数量用区间DP可以搞。 dp[i][j]=dp[i+1][j]+1(新增一个括号与str[i]匹配)dp[i][j] = dp[i+1][j]+1(新增一个括号与str[i]匹配) dp[原创 2016-10-06 09:54:14 · 913 阅读 · 1 评论 -
【TC SRM701】PartisanGame(博弈+循环节)
【TC SRM701】PartisanGame(博弈+循环节?)好不容易上了个DIV1,比赛时间这么好,想想就打打呗……一打又掉下去了。。。进重现,测了一下,挂了一组=.=循环节不一定从0开始…………GG。。。新鲜的TC题也不好找题解=。=不知道这种做法对不对……题目大意: 喜闻乐见的Alice和Bob玩石头 不过规则稍微变了下。 n块石头(n≤109)(n \le 10^9) Alice先原创 2016-10-27 17:55:38 · 808 阅读 · 1 评论 -
【LightOJ 1422】Halloween Costumes(区间DP)
【LightOJ 1422】Halloween Costumes(区间DP)题目大意: Jan有n个party要参加,每个party要穿指定的一种衣服,衣服种类在100内。 现在给出每个party要穿的衣服。 Jan在参加party时可以选择套上新衣服,也可以选择把一些当前穿的衣服脱掉,只要保证参加party时穿着对应规定的衣服就行。另外要注意的是,脱下的衣服不能二次使用。现在问最少需要准备几原创 2016-09-30 20:21:41 · 725 阅读 · 0 评论 -
【CF 731E】Funny Game(DP)
【CF 731E】Funny Game(DP)题目大意: n个数字排成一排,两个人玩游戏。 游戏规则是,每次可以从最左边选择2个以上的数字合并,得分为选中数字的和,合并后生成的新数字为选中数字的和。 直到剩下一个数字,游戏结束。两个人都希望与对方的最终得分差值尽量大,问先手最终与对方得分的差值为多少。两人足够聪明。博弈的思想套上DP考虑dp[i]为把1~i数字预先合并,生成一个新游戏局面,从当原创 2016-10-25 21:55:12 · 1136 阅读 · 1 评论 -
【URAL 1223】Chernobyl’ Eagle on a Roof(传说中的DP神优化之鹰蛋)
【URAL 1223】Chernobyl’ Eagle on a Roof(传说中的DP神优化之鹰蛋)记得多校赛金巨说过这个题。今天终于见到本尊了!!厉害的不是题目本身,而是Chen犇对它的五重优化!现在境界只达到第二层……第三重那个线性规划得出的单调性,以及后面给个图就把转移复杂度降到了log2(n)的部分。。。。我就粗糙说一下我n2lognn^2logn的做法吧。。卡着1s过去的……好蒻也就是初原创 2016-10-12 21:12:02 · 2142 阅读 · 1 评论 -
【PAT L2-014】列车调度(Dilworth定理)
【PAT L2-014】列车调度(Dilworth定理)L2-014. 列车调度时间限制300 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越火车站的列车调度铁轨的结构如下图所示。Fig原创 2016-07-18 09:51:49 · 4279 阅读 · 0 评论 -
【POJ 3071】 Football(DP)
【POJ 3071】 Football(DP)Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4350 Accepted: 2222DescriptionConsider a single-elimination football tourname原创 2016-04-15 18:57:07 · 3860 阅读 · 0 评论 -
【CF 474E】Pillars
【CF 474E】Pillars离散化+线段树dp大半夜写出来了。。。好长好长好长好长好挫……先把高度排序离散化 我又开了个哈希数组用来查某点对应离散后的点 然后遍历每个点时二分出满足题意的区间(1~h-d)(h+d~max) 然后线段树查两个区间当前最大长度的序列 累计到当前点对应的树内点 同时更新他的父亲点们的最大长度 再把之前最大长度的末尾作为当前点的前驱 如果没有就用当前点自己做前驱 最后输原创 2015-08-17 00:51:26 · 1191 阅读 · 0 评论 -
【POJ 1260】Pearls
【POJ 1260】Pearlsdp问题 最近做背包做多了 一做动规就往背包想…… 这题其实也有点背包的意思(然而只是做背包做的看啥都像背包……c件物品 有各自的数量a 和价值p 每进行一次交易的花费cost = (物品数+10)*价格 低价物品可以用高价一起购买 一次交易只能按照一种价值购买初始dp[0] = 0 dp数组下标为物品件数 枚举物品种类 没枚举一种物品 遍历该物品之前物品量原创 2015-08-13 21:36:51 · 1173 阅读 · 0 评论 -
OJ【3099】递归回溯?
题目链接:OJ【3099】递归回溯?题意:模拟题 叠巧克力 一块巧克力下面最多压两块 上面可以被多块巧克力压 按编码顺序输出对应巧克力下面压的巧克力总和 注意 是按编码顺序输出分析:递归回溯 递归回溯?……这东西还没咋研究 或许也能做出来 可惜不会= =、我的思路是无脑记录每块巧克力下面压着的巧克力 不存在则存0 重点是后面的处理 我选择递归不断往下查找 然后就是不断的WA 从++blog原创 2015-01-03 22:46:29 · 662 阅读 · 0 评论 -
动态规划算法和贪心算法的比较
利用动态规划求解最优问题的步骤:(1)证明该问题具有最优子结构性质;(2)根据最优子结构性质,写出最优值的递归表达式;(3)根据递归式,说明该问题具有重叠子结构性质;(4)采用自底向上的方式计算,写出求解最优值的非递归算法,同时构造最优解的解空间树;(5)遍历解空间树,求得最优解。利用贪心算法求解最优问题的步骤:(1)选定合适的贪心选择的标准;(2)证明转载 2015-01-20 23:07:03 · 903 阅读 · 0 评论 -
动态规划
终于来到了算法设计思想中最难,也最有趣的这部分,在去年的google笔试中,7道算法设计题有2道动态规划(Dynamic Programming)。看了这么久的算法,这部分也是唯一感觉到了比较难的地方,从这篇文章开始,将花连续的篇幅来讨论一些动态规划的问题。这包括书上介绍过的计算二项式系数,Warshall算法求传递闭包,Floyd算法求完全最短路径,构造最有二叉查找树,背转载 2015-01-20 23:20:56 · 753 阅读 · 0 评论 -
动规-POJ【2385】Apple Catching
题目链接:POJ【2385】Apple Catching题目大意:1、2两棵树上往下落苹果树下一头牛 初始位置在第一棵树下 牛的移动所消耗时间不计(即可以瞬移) 但只能移动W次 一共掉T次苹果 问牛最多可以吃几颗解题思路:二维数组 把原本第一维省去了 因为苹果只可能从1或2树上掉落 可以用下标(移动次数)%2+1 来记录 第一维记录移动次数 第二维记录掉落苹果数目 故存在j (※注原创 2015-01-21 20:00:14 · 759 阅读 · 0 评论 -
BOJ【44586】 顽皮的字母
BOJ【44586】 顽皮的字母原创 2014-12-26 23:43:57 · 965 阅读 · 0 评论 -
(新年第一贴)OJ【3100】动态规划?
//2015新年快乐题目链接:OJ【3100】动态规划?题意:一个一维数组,存储了n个正整数,下标依次为0,1,2,….,n-1。输出以st,st+5,st+5*2,st+5*3,...,st+5*n为下标的数列和的最大值分析:神马动规 神马跟神马 全被题名给坑了 标准最大子序列和问题的翻版 虽然考试的时候思路跟着题目走了。。。 当时也想到用最大子序列和的方法 当时这部分掌握得不算好原创 2015-01-03 22:23:28 · 1092 阅读 · 0 评论 -
【BC#24 1002 HDOJ 5273】Dylans loves sequence
【BC#24 1002 HDOJ 5273】Dylans loves sequence逆序对原创 2015-06-20 23:18:33 · 1573 阅读 · 2 评论 -
【POJ 3267】 The Cow Lexicon
【POJ 3267】 The Cow Lexicon原创 2015-07-11 18:25:24 · 824 阅读 · 0 评论 -
【CF 566F】 Clique in the Divisibility Graph
【CF 566F】 Clique in the Divisibility Graph原创 2015-08-02 19:02:11 · 1149 阅读 · 0 评论 -
【POJ 1836】 Alignment
【POJ 1836】 Alignment有一队士兵 已知每个士兵个头 想要从中选一些士兵出列 让剩下的士兵向左或向右能看到队首(及左边或右边的士兵个头都< 他) 两次LIS 从左往右 从右往左分别LIS 然后枚举找最少出队人数即可代码如下:#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#de原创 2015-08-13 22:27:41 · 970 阅读 · 0 评论 -
【POJ 1080】 Human Gene Functions
【POJ 1080】 Human Gene Functions类似于最长公共子序列的做法 dp[i][j]表示 str1[i]对应str2[j]时的最大得分 转移方程为 dp[i][j]=max(dp[i-1][j-1]+score[str1[i]][str2[j]], max(dp[i-1][j]+score[str1[i]][‘-‘],dp[i][j-1]+score[‘-‘][str2原创 2015-08-17 13:00:32 · 1006 阅读 · 0 评论