首页 > 其他分享 >HDU 1024 Max Sum Plus Plus(动态规划)

HDU 1024 Max Sum Plus Plus(动态规划)

时间:2023-05-26 15:04:44浏览次数:52  
标签:1024 HDU 1000010 int da Plus 序列 include dp


传送门

题意是给你个数字序列,现在让你把这个序列分成m个连续的子序列,且要求这m个子序列的累加和最大。

思路:这道题的题意可以理解为问在序列为末尾时,把序列分为m个子序列这个状态时的最大累加和,那么可以得出这个状态应该是由上一个状态转移得来:(因为dp[i][j]表示数到第j个字符时,前j个数字序列被分为i组时的最大值)dp【i][j]=max(dp[i-1][j]+num[j],dp[i][j-1]+num[j])这两种状态,第一种转移状态意思是第j个数字合并到上一个分组中构成新的分组,第二个状态是第j个数字自己构成一个分组;

代码如下

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
const int inf = 0x3f3f3f3f;
using namespace std;
int da[1000010],dp[1000010],a[1000010];
int main()
{
    int n,m;
    while(~scanf("%d %d",&n,&m))
    {
        memset(dp,0,sizeof(dp));
        memset(da,0,sizeof(da));
        for(int i = 1;i <= m; i++)
            scanf("%d",&a[i]);
        int res = 0;
        for(int i = 1;i <= n; i++)
        {
            res = -inf;
            for(int j = i;j <= m; j++)
            {
                dp[j] = max(dp[j-1] + a[j],da[j-1] + a[j]);//用上一层到j前面的最大来转移
                da[j-1] = res;//用完了上一层的,即开始把本层的数据作为下一次的迭代的上一层到b前的最大存好
                res = max(res,dp[j]);//同理,把本层作为下一层的上一层存好,因此在所有的循环都结束后,这就是最大值;
            }
        }
        printf("%d\n",res);
    }
    return 0;
}

 

标签:1024,HDU,1000010,int,da,Plus,序列,include,dp
From: https://blog.51cto.com/u_16131191/6356112

相关文章

  • elementplus vue3 ts 单图预览封装
    <divclass="demo-image__preview"><el-imagestyle="width:50px":src="props.image":zoom-rate="1.2":preview-src-list="[props.image]":initial-index="4&quo......
  • MyBatisPlus踩坑
    背景:当一个外部系统调用我们一个免登录的API接口,在我们数据库去保存或更新一条数据时,库表中的创建人和更新人字段不是正确的值。但是代码层面我们是有正确的设置创建人和更新人,查询sql日志发现我们设置的值统一被替换为“admin”了。这个时候才明白为什么另一个接口中在保存完......
  • Mybatis-Plus自动生成代码,自定义Controller
    MP网址:https://baomidou.com/pages/779a6e/#%E4%BD%BF%E7%94%A8直接copy官网代码修改成自己的:privatevoidgenerate(){FastAutoGenerator.create("jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2b8","root","P@ss123.")......
  • 解决vue3自动引入element-plus后eslint警告
    配置vue.config.js......module.exports=defineConfig({......configureWebpack:{plugins:[AutoImport({resolvers:[ElementPlusResolver()],eslintrc:{enabled:true,filepath:"./.eslintrc-auto......
  • Springboot+Mybatisplus+ClickHouse集成
    核心依赖引入<dependency><groupId>ru.yandex.clickhouse</groupId><artifactId>clickhouse-jdbc</artifactId><version>0.1.53</version></dependency><!--Mybati......
  • mybatis-plus控制台打印SQL
    方法一、在application.yml添加配置#mybatis-plus配置控制台打印完整带参数SQL语句mybatis-plus:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl方法二、mapper增加日志等级为debuglogging:level:com.chz.mapper:debug ......
  • 【cplusplus教程翻译】多态(Polymorphism)
    多态(Polymorphism)学习本章之前,需要正确理解指针和继承,如果忘记下面表达式的含义,需要回顾之前的章节基类指针(Pointerstobaseclass)继承的一个关键特性就是派生类的指针可以类型安全地转换成基类指针,多态就是利用这个简单通用特性的艺术//pointerstobaseclass#include<......
  • 创龙教仪TL6748-PlusTEB教学实验箱
    目 录1.实验箱简介 2.软硬件参数 3.可选摄像头模块 4.开发资料 5.电气特性 6.实验箱机械尺寸 7.产品认证 8.实验箱套件清单 9.技术支持 10.增值服务 更多帮助 附录A教学实验 1. 实验箱简介Ø 基于TITMS320C6748定点/浮点DSPC674x处理器,主频456MHz,高达3648MIPS和274......
  • 【转载】Mybatis Plus QueryWrapper结合lambda表达式使用distinct的方法
    MybatisPlusQueryWrapper的lambda用起来感觉挺爽的,有点JPA的感觉,也不需要拼很多字符串,可以利用IDE的代码检查功能,总之好处多多,停不下来。最近遇到一个问题,需要对SQL查询的结果做去重处理,自然想到了使用distinct。对于复杂的SQL语句,一般使用自定义XML的方式,但是这么个小问题,XML......
  • 找不到“element-plus/global”的类型定义文件。 程序包含该文件是因为: 在 compilerO
    问题描述在tsconfig.json文件里types字段添加"element-plus/global"后出现报错。问题原因TS升级到5.x带来的规范性问题。可以通过npmviewtypescriptversion命令查看下你的TS版本。深层分析参考这篇:https://github.com/element-plus/element-plus/issues/12119问题解决1......