首页 > TAG信息列表 > Lawn

洛谷P2627 [USACO11OPEN]Mowing the Lawn G (单调队列优化DP)

一道单调队列优化DP的入门题。 f[i]表示到第i头牛时获得的最大效率。 状态转移方程:f[i]=max(f[j-1]-sum[j])+sum[i] ,i-k<=j<=i。j的意义表示断点,因为不能连续安排超过k只牛,肯定要在中间断开一处。 max中f[j-1]-sum[j]只和j相关,我们可以对其做递减单调队列,最后队头就是最大值max。

杭电多校H . Lawn of the Dead(模拟)

链接 题意: \(n×m\) 的网格 有 \(k\)个不能走的点,坐标为\((x_i,y_i)\) 我们从\((1,1)\)点出发 一次移动可以向右 / 向下移动一格,最后走到不能走为止。 他有多少个格子是能够走得到的? 分析: 我们看题意可知,出了1这个点其他点如果能到,只能是他左边能到,或者上面能到,当然它本身一定能走

P2627 [USACO11OPEN]Mowing the Lawn G

Aimee 转移方程很好想\(dp_{i,0/1}\)表示第i个选(1)或不选(0) 其中\(dp_{i,0}=max(dp_{i-1,0},dp_{i-1,1})\) 而\(dp_{i,1}=max(dp[j]+sum_i-sum_j),i-j<=k\) 都有\(sum_i\),那就成了\(dp_{i,1}=max(dp[j]-sum_j)+sum_i,i-j<=k\) 显然括号里的可以用单调队列优化 #include<iostream> #

P2034 选择数字 / P2627 [USACO11OPEN]Mowing the Lawn G

Link 题目描述 给定一行 \(n\) 个非负整数 \(a[1]..a[n]\) 。现在你可以选择其中若干个数,但不能有超过 \(k\) 个连续的数字被选择。你的任务是使得选出的数字的和最大。 输入格式 第一行两个整数 \(n\) ,\(k\) 以下n行,每行一个整数表示 \(a[i]\)。 输出格式 输出一个值表示答案。

luogu P2627 [USACO11OPEN]Mowing the Lawn G 单调队列优化dp

//f[i]表示从前i头牛中选,且合法,的所有方案,价值最大 //第i头选或不选都可以 //不选:变成f[i-1] //选i:需要知道从i开始往前连续选了多少个,最多是k //如果是x个,那么就加上w[i-x+1]+w[i-x+2]...+w[i],也就是s[i]-s[i-j] //那么再往前选的话,下标需要<=i-x-1,相当于从前i-j-1中选的最大价