ICPC(武汉icpc邀请赛)
题意:有n个位置排成一排,从左到右第i个座位上摆放着分量为ai的菜肴。有个人坐在第s张椅子,每秒结束,她可以移动到相邻位置上也可以不动,她坐的位置上的菜肴都会被她吃了。计算她可以吃的最大总分量。他刚开始可以选择任意位置,她的时间最多为2n。
(图片来源网络,侵删)
知识点:二维dp
分析:
g[s][t] 为在位置s移动不超过t次且不折返的吃掉菜肴的最大值。对于所有情况,只有两种,一种是一直走到头不折反,一种是折返走。向左移时,对于每一个座位 s 和时间 t,由由子可以选择从左边的一个座位移动过来,即从 s-1 移动到 s。因此,f[s][t] 可以通过比较 f[s-1][t-1](从左边移动过来时的最大份量)和 g[s][t](不移动方向时的最大份量)来更新。向右移动,由于我们需要先处理向左移动的情况,为了避免覆盖掉还未处理的值,我们选择从右向左更新数组。对于每一个座位 s 和时间 t,由由子可以选择从右边的一个座位移动过来,即从 s+1 移动到 s。因此,我们需要先更新 g[s][t],确保它包含了从右边移动过来时的最大份量,然后再更新 f[s][t]。
#include
using namespace std;
typedef long long ll;
const int N=5e3+10;
ll sum[N],g[N][2*N],f[N][2*N];
int a[N],n;
int main(){
cin>>n;
for(int i=1;i>a[i];
sum[i]=sum[i-1]+a[i];
}
for(int s=1;s
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
