----其他DP
凉秋girl
保持学习应该是最难的一件事吧?
展开
-
最长上升子序列,LIS<DP+二分>
例子如4,1,6,2,8,5,7,3 8个数,如何求其最长上升子序列呢。 可以用L[i]表示前面子序列长度为i+1(因为length的下标从0开始)尾元素的最小值。 A[i]装的是每个元素的值。 length=1; 初始化L[0]=A[0]. for i=0 to n-1 if|(L[length-1] L[length++]=A[i];//表明最长的子序列的尾元素小于A[I],那原创 2017-05-04 10:56:22 · 179 阅读 · 0 评论 -
poj 1769
给一段长为n的线段,m个区间,要求不改变顺序,找出最少个区间使得覆盖1-n。 显然可以得出这个dp公式dp[i][j]表示更新到第i个区间,到第j个位置最小要几个区间。 dp[i][j]=min(dp[i][j],min(s1,e1)+1);。 s1与e1 表示第i个区间,且j在这个区间里。 那么可以转换为这么个dp dp[i]表示第1个数字可以移到i所需要的最少区间数。 dp[i]=m原创 2017-05-31 00:05:49 · 449 阅读 · 1 评论 -
四道入门区间dp
POJ-2955 空括号()、[],包含或相乘都算子串,问最长子串 ([][][) 也算长度为6 显然区间dp,对于一个区间如果两边为(),或[]长度就+2 dp[i][j]表示从i到j的最长 for(i=2;i<=len;i++) //从长度dp for(j=0;j+i<=len;j++){ //dp从j到j+i-1 for(k=j;k<j+i-1;k原创 2017-06-21 13:24:53 · 228 阅读 · 0 评论 -
哈尔滨理工大学软件学院大一个人赛训练Round1<二分,逆向并查集,高维DP,费用流(最大费用),瞎猜??>
只能过5题,自己还是好菜啊!新生赛的水题,知识点应该过7题的,只有那道判断5的个数不会而已,结果dp都错了,逆向并查集也想不到。 1、正向的删除可以当作逆向的添加来进行处理,同理正向的添加可以当作逆向的删除来处理。 2、找最大/最小问题,如果两次决策是有影响的就不可以轻易贪心,多考虑dp和特殊情况。 3、 wa 1 题意条件漏掉 A、A有k艘船,每艘船长度为m,有m个炮弹,这m个炮弹依次原创 2017-06-12 14:47:44 · 695 阅读 · 0 评论 -
2017 ACM Amman Collegiate Programming Contest
~这个队伍第一次组队赛是ccpc网赛,我全场梦游,由于我菜得抠脚,so导致打得跟什么一样,。。 然后这波cf是第二次组队赛,感觉还可以,虽然我...再次全场梦游,感觉自己一打组队赛就很迷,总是会想跟队友讨论,看来有时候自己写一发会靠谱些 就F、G、K题有意义,其他的队友都版切了。 F、Cooking Time 给一个冰箱,然后需要拿n个数字为ai的蛋糕,可以放k种蛋糕在冰箱外(下次可以直接原创 2017-08-26 23:24:18 · 749 阅读 · 0 评论 -
POD3260(单调队列优化)
有一个人去买东西,东西的价格为T, 其有n种面额的钱,每一种有c[i]张,售货员有与其相同面额的钱,但是其有无数张。 问买T所发生的最小钱张数(买的张数+找回钱的张数) 从这题知道完全背包一样单调队列优化 先预处理dp1[i]表示购买者找到钱i需要的最小张数 售货员dp2[i[表示找到钱i需要的最小张数 那么找一个比较大的数字T~m来循环 Min=min(Min,dp[T]+dp[m原创 2017-10-01 19:24:52 · 159 阅读 · 0 评论 -
EC final 康复—DP练习
HDU4055 给一个I、D、?组成的字符串长度为n,那么有n+1个数字,数字要求满足对有I,数字递增。有D,数字递减,有?,数字随意 比如131就满足ID,ID的所有数字有132,231.给一个字符串问有多少种方案。 这里假设一个dp[i][j]表示长度为i的字符串,结尾数字是j有dp[i][j]种方法。 这里有个大前提,就是结尾为j的时候,把所有大于j的数字+1,就可以得到之前无j的所...原创 2018-11-30 18:14:54 · 345 阅读 · 0 评论