3278 最小m 段和问题

 时间限制: 1
s
 空间限制:
256000 KB
 题目等级 :
黄金 Gold

查看运行结果

题目描述 Description

给定 n
个整数(不一定是正整数)组成的序列,现在要求将序列分割为 m 段,每段子序列中的数在原序列 中连续排列。如何分割才能使这 m
段子序列的和的最大值达到最小?

输入描述 Input
Description

文件的第 1 行中有 2 个正整数 n 和 m。 正整数 n 是序列 的长度;正整数 m
是分割的断数。 接下来的一行中有 n 个整数。

输出描述 Output
Description

文件的第 1
行中的数是计算出 的 m 段子序列的和的最大值的最小值。

样例输入 Sample
Input

1 1

10

样例输出 Sample
Output

10

数据范围及提示 Data Size &
Hint

N<=1000,M<=N

分类标签 Tags 点此展开

注意:
代码:
#include<
iostream >
using namespace
std;
#include<
cstdio >
#include<
cstring >
#define INFn
1001
int
n,m,dp[INFn][INFn],sum[INFn],num[INFn];
void
input()
{
scanf("%d%d",&n,&m);
for(int
i=1;i<=n;++i)
{
scanf("%d",&num[i]);
sum[i]=sum[i-1]+num[i];
}
}
void DP()
{
memset(dp,99,sizeof(dp));
for(int
i=1;i<=n;++i)
dp[i][1]=sum[i];
for(int
j=2;j<=m;++j)
 for(int i=j;i<=n;++i)
   for(int
t=j-1;t<=i-1;++t)
 
 dp[i][j]=min(dp[i][j],max(dp[t][j-1],sum[i]-sum[t]));
}
int main()
{
input();
if(n==0&&m==0)
{
cout<<0;
return 0;
}
DP();
printf("%d",dp[n][m]);
return 0;
 } 

141.最小m 段和问题--划分性DP(特殊数据)的更多相关文章

  1. 125.乘积最大(划分性DP)

    1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解 题目描述 Descriptio ...

  2. 详解数组分段和最大值最小问题(最小m段和问题)

    数组分段和最大值最小问题(最小m段和问题) 问题描述 给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连续排列.如何分割才能使这m段子序列的和的最大值达到最小? 清洁工:假 ...

  3. Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查

    本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...

  4. 深入理解java:1.3.1 JVM内存区域的划分(运行时数据区)

    学习Java GC机制,可以帮助我们在日常工作中 排查各种内存溢出或泄露问题,解决性能瓶颈,达到更高的并发量,写出更高效的程序. 我们将从4个方面学习Java GC机制, 1,内存是如何分配的: 2, ...

  5. 算法 - 最小m段和问题

    题目分析 给定n个整数组成的序列,要求将序列分割为m段,每段子序列中的数在原序列中连续排列,求使得子段和的最大值达到最小的分割方法 解题方法 状态转移方程 State[i][j]表示前i个数据分成j段 ...

  6. codevs 3278 最小m 段和问题

    时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题目描述 Description 给定 n 个整数(不一定是正整数)组成的序列,现在要求将序列分割为 m 段,每段 ...

  7. UVa 11552 最小的块数(序列划分模型:状态设计)

    https://vjudge.net/problem/UVA-11552 题意:输入一个正整数k和字符串S,字符串的长度保证为k的倍数.把S的字符按照从左到右的顺序每k个分成一组,每组之间可以任意重排 ...

  8. Scau 8633 回文划分 mancher + dp

    时间限制:1000MS 内存限制:1000K 提交次数: 通过次数: 题型: 编程题 语言: G++;GCC Description 我们说一个字符串是回文串,那么意味着这个串从两边读起来的字母都是一 ...

  9. 8633 回文划分(dp)

    8633 回文划分 该题有题解 时间限制:1000MS  内存限制:1000K提交次数:169 通过次数:63 题型: 编程题   语言: G++;GCC Description 我们说一个字符串是回 ...

随机推荐

  1. Python中的subprocess模块

    Subprocess干嘛用的? subprocess模块是python从2.4版本开始引入的模块.主要用来取代 一些旧的模块方法,如os.system.os.spawn*.os.popen*.comm ...

  2. linux中使用mysql数据库

    在安装完数据库后,如果没有设置root的mysql密码,在命令行输入mysql即可进入数据库 show databases;(有分号):查看当前存在的数据库 create database 名字:创建 ...

  3. smb windows中使用的文件共享协议(主要用于与windows互通)

    主要是samba服务. SMB协议又成为CIFS(Common Internet File System)协议 samba服务功能: 1文件共享 2打印共享 3加入windows2000/2003/2 ...

  4. c#导出文件,下载文件,命名下载后的文件名

    Page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpU ...

  5. FISCO-BCOS平台共识

    FISCO-BCOS 应用于区块链的多节点并行拜占庭容错共识算法 看了下微众平台的wiki共识知识 学习下 ()内是自己的思考  参考: https://github.com/FISCO-BCOS/W ...

  6. springboot项目的搭建

    原文链接:http://www.cnblogs.com/winner-0715/p/6666302.html 后续完善(附图及详细过程)

  7. linux的基本的命令行操作

    linux的基本的命令行操作 第一步前登陆你的服务器 //创建文件夹的方法 mkdir 文件名 //进入指定文件夹 cd 文件名 //查看文件夹下的内容 ls or ll // 查看当前的路径 pwd ...

  8. Freemarker的页面和JS遍历后台传入的Map

    后端传到前端的Map Freemarker页面遍历Map: JS遍历Map:

  9. hadoop3.1集成yarn ha

    1.角色分配

  10. 安卓屏幕旋转时,禁止Activity重新加载

    安卓设备旋转屏幕时,Activity默认会重新加载,如果是要读取大量数据的场景,那等待的时间比较长,这一点不可接受,所以要想办法禁止Activity自动重新加载. 方法如下在AndroidManife ...