https://www.luogu.org/problemnew/show/P2990

题意:奶牛在玩游戏,有N个格子,第i个格子上有一个数字vi表示这个格子的钱。奶牛想得到最多的钱。

有一些规则:

奶牛从0号格子出发,没有钱。

奶牛可以每次跳一些格子,最多可以跳k格,好像也可以不跳。

奶牛在任何时刻都可以往回跳。

此外,不可以跳到之前停留的格子。除了0号格子之外,她在回来时必须是过去时停留的某个格子的前一格,奶牛也可以跳过去。

做法:这道题,当时读错题了,随便写了一个单调栈dp还写错了居然过了百分之66的数据。让我有点意外。

后来知道正确的题意后,才知道怎么做了

val表示价值,presum表示正整数的前缀和,假设在一个k的范围内我们贪心的选取所以正整数,并且留下一个回去的路。

虽然这个想法会想到,但不过不知道对不对,所以不会写,但不过这个想法是对的。这可能就是我们与大佬的一个差距吧。

于是有了下面的递推方程。

dp[i]=max(dp[j]+presum[i-2]-sum[j])+val[i-1]+val[i];

但不过dp[i]并不是最终的答案,他也有可能跳到i后直接跳k步然后跳回去,以及刚刚开始就跳回去。

#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<queue>
using namespace std;
typedef long long ll;
const int N=250010;
ll dp[N],sum[N],ans,val[N],que[N],id[N];
int n,k;
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>k;n++;for(int i=2;i<=n;i++) cin>>val[i];for(int i=2;i<=n;i++)sum[i]=sum[i-1]+(val[i]>0?val[i]:0);dp[0]=dp[1]=0;int head=1,tail=0;for(int i=2,j=0;i<=n;i++,j++){ll tmp=dp[j]-sum[j];while(head<=tail&&que[tail]<=tmp) tail--;que[++tail]=tmp,id[tail]=j;while(head<=tail&&id[head]<i-k) head++;dp[i]=sum[i-2]+que[head]+val[i-1]+val[i];}ll ans=sum[min(n,k+1)];for(int i=2;i<=n;i++){int t=min(n,i-1+k);ans=max(ans,dp[i]+sum[t]-sum[i]);}cout<<ans<<endl;return 0;
}

洛谷2990 牛跳房子Cow Hopscotch相关推荐

  1. python刷题 NOI题库 python题解 洛谷、牛客网、AcWing 刷题等

    NOI题库 python题解-2022.01.07整理(1.1-1.3) NOI题库 python题解-2022.01.07整理(1.1-1.3)_dllglvzhenfeng的博客-CSDN博客 N ...

  2. 洛谷1522 牛的旅行

    洛谷1522 牛的旅行 本题地址: http://www.luogu.org/problem/show?pid=1522 题目描述 农民 John的农场里有很多牧区.有的路径连接一些特定的牧区.一片所 ...

  3. 洛谷、牛客网、AcWing 刷题(python版)

    牛客网python专项练习整理(一) https://blog.csdn.net/weixin_41913008/article/details/87203468 牛客网剑指offer--python ...

  4. 洛谷or牛客数据结构+算法

    栈思想:先进后出 tips:栈里能放下标就放下标 (牛客)小c的计事本(直接用stack可以简化代码,且不会被自己绕晕,当时没意识到) (牛客)吐泡泡(没意识到用栈),(牛客)好串 1.后缀表达式(栈 ...

  5. 洛谷 P1522 牛的旅行 Cow Tours

    题目:牛的旅行 思路: 先预处理出两点间的距离,跑一边floyd,然后处理出每个点到离它最远的和它连通的距离L[i]. 然后再对于每个点,枚举所有和它不连通的点j,用L[i]+L[j]+d(i,j)更 ...

  6. 洛谷 P2888 [USACO07NOV]牛栏Cow Hurdles

    题目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gan ...

  7. 洛谷 P2888 [USACO07NOV] 牛栏Cow Hurdles

    题目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gan ...

  8. 洛谷-P1843-奶牛晒衣服

    原题: 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣服就成了很不爽的事情. 题目描述 熊大妈请你帮助完成这个重任 . 洗完衣服后 , 你就要弄干衣服 . 衣服在自然条件下用 ...

  9. 洛谷1522牛的旅行

    题目:https://www.luogu.org/problemnew/show/P1522 简单地求了一堆最短路而已. 1.有时候sqrt里要 * 1.0,不知何故:本题需要吗? 2.那个地方是 f ...

  10. 洛谷P6140 [USACO07NOV]Best Cow Line S

    题目描述 Farmer John 打算带领 N(1≤N≤2000)N(1≤N≤2000)N(1≤N≤2000)头奶牛参加一年一度的"全美农场主大奖赛".在这场比赛中,每个参赛者必须 ...

最新文章

  1. 如何成为月入过万的斜杠青年
  2. mcs 4微型计算机,MCS-II高性能自主品牌的微机测速仪
  3. 用人铁律:高层看胸怀、中层看德行、基层看才能
  4. Android之对资源图片进行比例缩放
  5. tomcat:there is no resources that can be added or removed from server
  6. Unity中调用手机中的粘贴功能
  7. 我的SAP Hybris学习笔记
  8. 双栈共享存储空间(C++代码实现)
  9. 使用Eclipse-Maven-git做Java开发(13)--导入git仓库的代码到eclipse
  10. 如何使用CSS将文本垂直居中?
  11. Swift - 05 - 数值型字面量
  12. Android 对应的xml配置值,颜色表
  13. 基于KDJ指标的Dual Thrust策略
  14. 什么是数据运营?数据运营是做什么的?
  15. 记一次Windows 无法加载这个硬件的设备驱动程序。驱动程序可能已损坏或不见了。 (代码 39)
  16. HDU - 3966 树链刨分
  17. Tight WCRT Analysis of Synchronous C Programs
  18. IBM Rational software Architect 9.0安装包百度网盘
  19. 统计建模与R软件-附R原程序
  20. react 3d模型_制作3D React Carousel

热门文章

  1. python计算与绘制抛物线
  2. 黑苹果oc清除nvram_自己组装一台“iMac”是什么体验(下):AMD 平台也能吃上黑苹果...
  3. 给程序进行简单的加壳
  4. 常用文件的mime和mimetype的对应关系
  5. 影子传文件到服务器,影子传说——文件超级隐身术
  6. 笔记本电脑总是锁定计算机呢,笔记本电脑键盘锁定了怎么办有什么方法解锁
  7. python算法 之 猜词游戏
  8. android+状态栏显示图标大全,状态栏中的Android显示图标
  9. 用友 uap NC系统单点登录总结
  10. rockchip eDP 配置