洛谷2990 牛跳房子Cow Hopscotch
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相关推荐
- 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 ...
- 洛谷1522 牛的旅行
洛谷1522 牛的旅行 本题地址: http://www.luogu.org/problem/show?pid=1522 题目描述 农民 John的农场里有很多牧区.有的路径连接一些特定的牧区.一片所 ...
- 洛谷、牛客网、AcWing 刷题(python版)
牛客网python专项练习整理(一) https://blog.csdn.net/weixin_41913008/article/details/87203468 牛客网剑指offer--python ...
- 洛谷or牛客数据结构+算法
栈思想:先进后出 tips:栈里能放下标就放下标 (牛客)小c的计事本(直接用stack可以简化代码,且不会被自己绕晕,当时没意识到) (牛客)吐泡泡(没意识到用栈),(牛客)好串 1.后缀表达式(栈 ...
- 洛谷 P1522 牛的旅行 Cow Tours
题目:牛的旅行 思路: 先预处理出两点间的距离,跑一边floyd,然后处理出每个点到离它最远的和它连通的距离L[i]. 然后再对于每个点,枚举所有和它不连通的点j,用L[i]+L[j]+d(i,j)更 ...
- 洛谷 P2888 [USACO07NOV]牛栏Cow Hurdles
题目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gan ...
- 洛谷 P2888 [USACO07NOV] 牛栏Cow Hurdles
题目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gan ...
- 洛谷-P1843-奶牛晒衣服
原题: 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣服就成了很不爽的事情. 题目描述 熊大妈请你帮助完成这个重任 . 洗完衣服后 , 你就要弄干衣服 . 衣服在自然条件下用 ...
- 洛谷1522牛的旅行
题目:https://www.luogu.org/problemnew/show/P1522 简单地求了一堆最短路而已. 1.有时候sqrt里要 * 1.0,不知何故:本题需要吗? 2.那个地方是 f ...
- 洛谷P6140 [USACO07NOV]Best Cow Line S
题目描述 Farmer John 打算带领 N(1≤N≤2000)N(1≤N≤2000)N(1≤N≤2000)头奶牛参加一年一度的"全美农场主大奖赛".在这场比赛中,每个参赛者必须 ...
最新文章
- 如何成为月入过万的斜杠青年
- mcs 4微型计算机,MCS-II高性能自主品牌的微机测速仪
- 用人铁律:高层看胸怀、中层看德行、基层看才能
- Android之对资源图片进行比例缩放
- tomcat:there is no resources that can be added or removed from server
- Unity中调用手机中的粘贴功能
- 我的SAP Hybris学习笔记
- 双栈共享存储空间(C++代码实现)
- 使用Eclipse-Maven-git做Java开发(13)--导入git仓库的代码到eclipse
- 如何使用CSS将文本垂直居中?
- Swift - 05 - 数值型字面量
- Android 对应的xml配置值,颜色表
- 基于KDJ指标的Dual Thrust策略
- 什么是数据运营?数据运营是做什么的?
- 记一次Windows 无法加载这个硬件的设备驱动程序。驱动程序可能已损坏或不见了。 (代码 39)
- HDU - 3966 树链刨分
- Tight WCRT Analysis of Synchronous C Programs
- IBM Rational software Architect 9.0安装包百度网盘
- 统计建模与R软件-附R原程序
- react 3d模型_制作3D React Carousel
热门文章
- python计算与绘制抛物线
- 黑苹果oc清除nvram_自己组装一台“iMac”是什么体验(下):AMD 平台也能吃上黑苹果...
- 给程序进行简单的加壳
- 常用文件的mime和mimetype的对应关系
- 影子传文件到服务器,影子传说——文件超级隐身术
- 笔记本电脑总是锁定计算机呢,笔记本电脑键盘锁定了怎么办有什么方法解锁
- python算法 之 猜词游戏
- android+状态栏显示图标大全,状态栏中的Android显示图标
- 用友 uap NC系统单点登录总结
- rockchip eDP 配置