hdu5009】的更多相关文章

题目链接:https://cn.vjudge.net/problem/HDU-5009 题意 给一串序列,可以任意分割多次序列,每次分割的代价是被分割区间中的数字种数. 求分割区间的最小代价.n<=5e4 例:1 3 3 答:2 思路 今天刚讲的dp题目,这次讲课收益非常,写个题解. 状态和转移是dp[i]=min(dp[j]+cnt[j-1][i]^2) 会发现这样绝对超时,又发现这里的j可以贪心的跳着选择(因为种数相同时,左端点应越小越好). 这里的跳着选择想了半天没什么思路,又是最后看了题…
http://acm.hdu.edu.cn/showproblem.php?pid=5009 2014网络赛 西安 比较难的题 Paint Pearls Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1951    Accepted Submission(s): 631 Problem Description Lee has a str…
http://acm.hdu.edu.cn/showproblem.php?pid=5009 题目要求对空序列染成目标颜色序列,对一段序列染色的成本是不同颜色数的平方. 这题我们显然会首先想到用DP去解决,dp[i] = min( dp[i] , dp[j] + cost(i , j) ).但是枚举ij的复杂的高达n^2,不能接受,我们就考虑去优化它. 首先比较容易想到的是,去除连续重复元素,可以把它们当作同一个点处理. 此外在遍历j的过程中如果当前序列颜色不同的数量平方大于当前dp[i],显然…
Paint Pearls Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3239    Accepted Submission(s): 1052 Problem Description Lee has a string of n pearls. In the beginning, all the pearls have no color…
这题说的是给了一个  长度为n(n<=50000)的数列,数列表示的是给每个珍珠涂的颜色,任务是将一窜长度为n的珍珠涂成他所要的颜色.然后你可以操至多n次, 每次画只能画连续的区间,每次操作是的代价是这个区间内不同颜色的个数, 可以知道最多的代价是区间的长度. 然后 可以知道当这个区间内不同颜色的个数大于如果大于sqrt(n)那还不如一个一个涂花费少,然后现在就剩下处理理当前位置j种颜色的达到的最远距离, 找到这个点对于之前出现相同的颜色的位置用per[i]记录, flow[i][j] 表示 距…
03 hdu5009 状态转移方程很好想,dp[i] = min(dp[j]+o[j~i]^2,dp[i]) ,o[j~i]表示从j到i颜色的种数. 普通的O(n*n)是会超时的,可以想到o[]最大为sqrt(n),问题是怎么快速找到从i开始往前2种颜色.三种.四种...o[]种的位置. 离散化之后,可以边走边记录某个数最后一个出现的位置,初始为-1,而所要求的位置就等于 if(last[a[i]]==-1) 该数没有出现过,num[i][1] = i,num[i][j+1] = num[i-1…
例题1 noiopenjudge9277 给出在最底层的木头的个数,问有多少种堆放木头的方式,当然你的堆放方式不能让木头掉下来. 在堆放的时候木头必须互相挨着在一起. 设dp[i]表示多少个log(原木)为底时的方案数. dp[i]=dp[1](i-1)+dp[2](i-2).....dp[i-1]*1 这就是dp方程,不过好像是O(n^2)的,过不了 我们再看看看dp[i+1] dp[i+1]=dp[1]i+dp[2](i-1).....dp[i]*1 发现dp[i+1]是dp[i]加上1~i…
马上区域赛,发现DP太弱,赶紧复习补上. #普通DP CodeForces-546D Soldier and Number Game 筛法+动态规划 待补 UVALive-8078 Bracket Sequence 问以每个字符为左端点的最长括号序列是多长.(包括尖.花.中小括号) 状态:设dp[i]为从i开始的括号序列最长长度. 转移:以i+1为起点的最长串后边的字符若与左括号匹配,答案是加上这个字符后边的最长串,否则为零. HDU-1024 Max Sum Plus Plus 给一个序列,找…