
线性DP
文章平均质量分 92
zwjdd_qwq
这个作者很懒,什么都没留下…
展开
-
洛谷P2339 提交作业usaco
这题算是一个典型的区间DP,方程式和奶牛零食极其的像,思想也是我们定义dp[i][j][0/1]dp[i][j][0/1]dp[i][j][0/1]表示区间[i,j][i,j][i,j]内,除了i(0)i(0)i(0) 和j(1)j(1)j(1)其他都没选的最短时间方程式的转移就很简单我们思考一个简单的贪心策略对于一段任务区间,如果我们先选了开门早的中间节点,那么我们一定会返回至两个区间端...原创 2019-10-30 01:07:58 · 220 阅读 · 0 评论 -
洛谷P2340 奶牛会展
一道不错的背包题,难度并不大,但有一些细节这题要求两个互不影响的值的总和最大,猛一看可能觉得是贪心,一顿排序然后。。。。。也太容易证明是错的了,,,我们换一个角度,我们转换一维变成费用,于是我们每选一头牛,代价可能增或降(情商为正或负)所得也会增加或减少(智商为正或负),我们求出在固定情商下智商的总和最大值,暴力枚举所有的情商统计答案即可,这是妥妥的01背包啊但是这样会发现一个很大的问题...原创 2019-10-30 00:38:09 · 160 阅读 · 0 评论 -
篮球
换一个理解方式:有一个由N(N<=1000)个数字组成的序列,我们每次取出两个子序列S1和S2,满足以下条件:1.每个数字只出现一次,可以放在S1或者S2里,也可以都不放,但S1和S2不能为空,且S2中的任意一个数字,在原序列中的位置必须在S1任何一个数字之后。2.S1中所有数字异或(^)和必须等于S2中所有数字的与(&)和。3.对于一组{S1,S2},当且仅当其中任意一个...原创 2019-10-28 20:45:03 · 224 阅读 · 0 评论 -
「Usaco2013 Dec」最优挤奶
这一题实际上就是线段上的最大独立集因为带了修改,所以还有了点动态DP的意思??比较暴力的写法是对于每次改值操作,全部重新DP那肯定过不去想想原因,因为每次重新DP重复计算了太多了计算过的值而且,对于连续一段来说,他并没有后效性,就是不影响后面的选择同时,后面的选择也不影响前面的那么单点更新,可不可以每次调用以前算过的解呢?当然可以,于是我们引出了线段树因为要求独立集而且无前后效性...原创 2019-10-17 20:48:22 · 182 阅读 · 0 评论 -
P2344「Usaco2011 Feb」奶牛抗议
这题是真的水爆一个O(N2)O(N^2)O(N2)的暴力有92pts92pts92pts…实际上正解也不难写,我们的暴力是把前面的累加起来,判正负我们把前缀和的正负变为sumsumsum的大小,即sum[x]−sum[y]>=0sum[x]-sum[y]>=0sum[x]−sum[y]>=0 等价于sum[x]>=sum[y]sum[x]>=sum[y]sum[...原创 2019-10-08 23:22:36 · 140 阅读 · 0 评论 -
「Usaco2010 Jan」轮流吃草
一个类似于博弈的DP我们要保证一个人最优,那么我们有两种选择当前点拿,我们从上次取的权值和加当前权值转移不拿的话,第二个人也拿不了,继承原来的值#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<cstdlib>using ...原创 2019-10-08 20:59:53 · 204 阅读 · 0 评论 -
「Usaco2010 Nov」买饲料1O(∩_∩)O
这题的最直接算法是O(n2k)O(n^2k)O(n2k)的暴力Dpfor(int i=1;i<=n;i++) for(int k=0;k<=sta[i].f;k++) for(int l=0;l<=sum[i]-k;l++) f[i][l+k]=min(f[i][l+k],f[i-1][l]+(l)*(l)*(sta[i].x-s...原创 2019-10-08 19:49:07 · 175 阅读 · 0 评论 -
洛谷P2258 子矩阵
这是一道比较无聊的题目,虽然看上去极其的吓人,但是看完N是小于等于16之后,一切皆有可能首先,要选出r行c列,我们分开做,暴力枚举出所有的行状态,对于每一种状态分别DP,最后更新答案即可DP我是这么写的f[i][j]f[i][j]f[i][j]表示原图第jjj列选了要求矩阵的第iii列,所得到矩阵的最小值转移十分的显然f[i][j]=min(f[i][j],f[i−1][(i−1)−&...原创 2019-09-13 00:54:01 · 259 阅读 · 0 评论 -
洛谷P3146 [USACO16OPEN]248
我果然还是弟弟一眼看这题,裸的区间Dp嘛,啪啪啪打完,样例完美通过,直接交结果自然喜闻乐见为什么会这样,我阶段输出了一下DP过程中值的变化情况,发现了这么一个操蛋问题我的DP是这样的 多么朴实无华for(int l=1;l<=n;l++){ for(int r=l+1;r<=n;r++){ for(int k=l;k<r;k++){ if(f[l][...原创 2019-09-11 23:57:53 · 243 阅读 · 0 评论 -
洛谷P4066 [SHOI2003]吃豆豆
感觉和传纸条很像,听说网络流能写然而并不想写,还是选择了拓排加DP考虑一下这题和传纸条DP的区别边界N.M过大,2000,无法承受O(N2∗M2)O(N^2*M^2)O(N2∗M2)算法,甚至优化后的O(N∗M2)O(N*M^2)O(N∗M2)的也不行我们考虑改变DP顺序,因为这题的豆子是空间内的一些点,而且每次只能往上往右走,如果按照传纸条的方法DP,会求出非常多的无用量,如何避免呢,我...原创 2019-09-04 23:25:28 · 206 阅读 · 0 评论 -
bzoj1605 洛谷2905 [Usaco2008 Open]Crisis on the Farm 牧场危机(DP)
很暴力的一个题这个题目大概分为以下几步一、计算从原点走多少步产生的贡献曼哈顿距离搞一搞二、进行DP求最大值按照字典序贪心的按WSNE进行DP,取最后一个三、检查合格的终止点便利一遍DP数组即可四、倒序求出路径通过前后产生的差量判断是否可以转移五、输出路径按照ans的偏移量进行输出End.解析见注释代码(换码风丑死了)#include<iostream>#...原创 2019-08-29 21:49:48 · 193 阅读 · 0 评论 -
洛谷P5468(DP)回家路线
蒟蒻竟然能过一题,可能数据比较水qwq我们选择dpf[i][j]f[i][j]f[i][j] 表示 在 时间 jjj 到达 iii 点 最小的烦躁值所以f[edge[i].y][edge[i].q]=minf[edge[i].y][edge[i].q]=minf[edge[i].y][edge[i].q]=min(f[edge[i].x][j]+val(edge[i].p−jf[edge[i...原创 2019-07-29 00:22:58 · 160 阅读 · 0 评论