题解 CF1389B 【Array Walk】
简要题意:
你前面一共有 nnn 个格子,每个格子都有它的分值 axa_xax。当你到达第 xxx 个格子就能获得第 xxx 个格子的得分 axa_xax。
初始时你站在第 111 个格子,每一次移动你可以选择向左或向右,特别地,向左移动的次数不能超过 zzz。
现在,请问你正好走了 kkk 步后,最大得分是多少?
这道题比赛时,我先写了个正解,结果发现出了点问题,然后不知道怎么想的,去写了 222 个显然是假的的贪心,然后又跑回去重新按照第 111 次的思路写了一遍,然后就过了。于是我就丢人地做了 505050 分钟 BBB,导致没来得及写完 DDD。
这道题考虑这样一件事,我们没走一步,虽然位置并不一定单调不降,但是向左走的步数和总共走的步数一定是单调不降的,换句话说就是这 222 个量无后效性,这就是本题的突破口。
我们知道向左走的步数和总共走的步数就可以知道当前在哪个格子,然后我们再来决定这步是从哪里转移过来的,上一步是向右走的还是向左走的。
思路大概就是这样,希望一些细节大家还是自己推一下,还是比较复杂的。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
template<typename T>inline void read(T &FF){T RR=1;FF=0;char CH=getchar();for(;!isdigit(CH);CH=getchar())if(CH=='-')RR=-1;for(;isdigit(CH);CH=getchar())FF=(FF<<1)+(FF<<3)+(CH^48);FF*=RR;
}
const int MAXN=1e5+10;
int a[MAXN],f[6][MAXN];
int work(){int n,k,z;read(n);read(k);read(z);for(int i=1;i<=n;i++)read(a[i]);f[0][0]=a[1];for(int i=0;i<=z;i++)for(int j=1;j<=k;j++){f[i][j]=f[i][j-1]+a[j-i*2+1];if(i!=0)f[i][j]=max(f[i][j],f[i-1][j-1]+a[j-i*2+1]);}int ans=0;for(int i=0;i<=z;i++)ans=max(ans,f[i][k]);cout<<ans<<endl;return 0;
}
int main(){int T;read(T);while(T--)work();return 0;
}
题解 CF1389B 【Array Walk】相关推荐
- php array walk 效率,php代码优化系列(二) -- array_walk 和 foreach, for 的效率的比较...
实验是我学习计算机科学的一个重要方法,计算机科学不是简单的智力游戏,它本质上来说不是一门科学,而是一个改造世界的工具.数学方法和实验方法是计算机研究的基本方法,也是我们学习的基本方法,数学锻炼我们的思 ...
- asp子窗口读取父窗口数据_算法与数据结构基础 - 数组(Array)
数组基础 数组是最基础的数据结构,特点是O(1)时间读取任意下标元素,经常应用于排序(Sort).双指针(Two Pointers).二分查找(Binary Search).动态规划(DP)等算法.顺 ...
- Educational Codeforces Round 92 (Rated for Div. 2)题解(A-C)
目录 A.LCM Problem B.Array Walk C. Good String A.LCM Problem 题意:给定两个整数定义的闭区间[l,r][l,r][l,r],让你在区间内找出两个 ...
- php 错误传递,php-调用时通过引用传递错误,无法修复代码
自从我更新到php 5.4以来,我收到了错误信息,即调用时传递引用已被删除,正如我阅读的那样,删除了&应该解决它.它可以,但是现在我的代码不再起作用. 我需要使用字符串beeing t和f加上 ...
- PHP 从菜鸟到大咖的踩坑之路
https://cloud.tencent.com/developer/article/1464655 电商Sku设计思维 https://xlswriter-docs.viest.me/zh-cn/ ...
- Python各种包学习
Logging logging的level DEBUG>INFO>WARNING>ERROR>CRITICAL import logginglogging.basicConfi ...
- The 2022 ICPC Asia Regionals Online Contest (II) A、B、E、F、G、J、L
文章目录 A-Yet Another Remainder 题目 题解 B-Non-decreasing Array 题目 题解 E-An Interesting Sequence 题目 题解 F-In ...
- 老男孩上海校区Python面试题
python面试题 第一章:python基础 数据类型: 1 字典: 1.1 现有字典 dict={'a':24,'g':52,'i':12,'k':33}请按字典中的 value 值进行排序? 1. ...
- 【Codeforces Round #767 (Div. 2)】 C. Meximum Array 题解
[Codeforces Round #767 (Div. 2) ]C. Meximum Array 题解 1629C: Meximum Array 题解 [Codeforces Round #767 ...
- 【Python CheckiO 题解】Sort Array by Element Frequency
CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思 ...
最新文章
- 动态开辟二维数组的两种方案及位体
- Oracle 子查询
- qt double 相减不为0_Qt音视频开发25-ffmpeg音量设置
- 响应式系统reactive system初探
- 小心 HttpClient 中的 FormUrlEncodeContent 的 bug
- 2018-2019-1 20165203 《信息安全系统设计基础》第六周学习总结
- 期待三分天下开源芯片有其一
- OpenCV 访问Mat 像素
- winform 的exe为什么移动之后不能使用_C++MyDock配置要求、所需运行库、常见问题 初次使用必看...
- 白话CMMI(一)——CMMI扫盲
- 计算机蓝屏代码0x0000007b,win7开机蓝屏提示STOP:0X0000007B的解决方法
- 为啥苹果手机连无线无网络连接服务器,苹果手机网络无法连接怎么回事
- 【百练】1103Hangover宿醉(c语言)
- 排序 ---- 快排(C语言)
- 使用Landsat系列数据来检测喜马拉雅地区的冰湖溃决(Georg Veha等人,RSE,2018)
- searchableSelect下拉框插件增加按拼音及首拼搜索
- c语言调用calculate函数,关于c语言中int calculate函数求解。谢谢
- 粗粒度与细粒度的解释
- python实验室怎么样_跟老齐学Python之一个免费的实验室
- 混沌工程之ChaosBlade(一):建立混沌工程思想