题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=742

分析:

怎么说的, 看了大牛的博客之后,感觉也不是太难, 就是写不出来。

这题需要两个dp数组;状态定义:

dp【】:表示前 j 个数中, 第 i 段以 j 结尾, 分为  i 段的最连续大和;

b【】 : 表示前 j 个数中,   分为 i 段的最大连续和;

转移方程:

dp【j】 = max (dp【j-1】+a【j】,  b【j-1】+ a【j】);

b【j】 = max(dp【j】, b【j-1】);

下面就是写的技巧了。

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int inf = 0x7f7f7f7f;
const int maxn = 1e6 + 10;
int dp[maxn], a[maxn], b[maxn];
int main()
{int T, n, m, ans;scanf("%d", &T);while(T--){scanf("%d%d", &m, &n);memset(dp, 0, sizeof(dp));memset(b, 0, sizeof(b));dp[0] = b[0] = 0;for(int i = 1; i <= n; i++)scanf("%d", &a[i]);for(int i = 1; i <= m; i++){ans = -inf;for(int j = i; j <= n; j++){dp[j] = max(dp[j-1]+a[j], b[j-1]+a[j]);b[j-1] = ans;ans = max(dp[j], ans);}}printf("%d\n", ans);}return 0;
}

NYOJ742(DP)相关推荐

  1. dp,sp,px相互转化

    方法一: public int sp2px(float sp) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, ...

  2. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

  3. HDU 2084 数塔(DP)(JAVA版)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  4. dp cf 20190615

    A. Timofey and a tree 这个不算是dp,就是一个思维题,好难想的思维题,看了题解才写出来的, 把点和边分开,如果一条边的两个点颜色不同就是特殊边,特殊边两边连的点就叫特殊点, 如果 ...

  5. BZOJ 1003[ZJOI2006]物流运输(SPFA+DP)

    Problem 1003. -- [ZJOI2006]物流运输 1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MB Submit ...

  6. [NOI2005]聪聪与可可(期望dp)

    题意:给一张无向图,有一只猫和一只老鼠,猫每秒会向老鼠的方向移动两个单位,若它们的距离为一,那么只会移动一个单位,老鼠会等概率向周围移动一步或不动,求猫抓到老鼠的期望时间. Solution luog ...

  7. Codeforces 903F Clear The Matrix(状态压缩DP)

    题目链接 Clear The Matrix 题意 给定一个$4 * n$的矩形,里面的元素为$'.'$或$'*'$.现在有$4$种正方形可以覆盖掉$'*'$,正方形的边长分别为$1,2,3,4$. 求 ...

  8. 喵哈哈村的魔法考试 Round #1 (Div.2) 题解源码(A.水+暴力,B.dp+栈)

    A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05   最后更新: 2017年2月21日 20:06   时间限制: 1000ms   内存限制: 128M 描述 传说喵哈哈村有三种神 ...

  9. 尼克的任务 dp 洛谷1280

    蒟蒻表示老久没看过dp题目了,,挺水的一道dp题目都没想出来,,, 首先设dp[i]表示从开始到i时间的最大空闲时间,用vector to[x] 表示从x点开始的任务结束时间,cnt[x]表示从x开始 ...

最新文章

  1. 小于60的数中能被1到10整除的数量
  2. Selenium2学习(八)-- 操作元素(键盘和鼠标事件)
  3. 新手用python2还是3-Python 使用情况调查:2还是3?(附致歉声明)
  4. PyQt5 图形界面 - Qt Designer独立安装包,仅需30M!python图像化界面绘制工具
  5. Java反射 - 2(对象复制,父类域,内省)
  6. 实习推荐 | 腾讯AI Lab虚拟人中心招聘算法工程师实习生
  7. Visual Studio 2008 Windows Server 2008 预发布-20日在南宁
  8. 编译安装 openswan-2.6.34
  9. 实战:Redis 哨兵模式(下)
  10. Web笔记-session及cookie
  11. 【Go学习笔记2】go语言中的基本数据类型和包的介绍(一)
  12. oracle cloud认证费用,ORACLE Cloud 创建实例费用提问
  13. .net HTML编码解析
  14. IAR基础教程之函数跳转
  15. 什么是python的内置函数_python 内置函数
  16. ocx注册成功但是页面不显示
  17. ASPUpload文件上传组件的用法
  18. LCD液晶拼接屏优势凸显受市场欢迎
  19. 机器学习之层次聚类及代码示例
  20. BMC指定4路NCSI网口中的一路

热门文章

  1. 开源两大阵营告诉你开源License的根本区别
  2. 1.3 输入三角形的三边长,判断能不能组成三角形?如果能,计算三角形的面积
  3. 51单片机 IIC OLED驱动显示通用程序模板
  4. 各浏览器cloneNode方法的部分实现差异
  5. jsEscape编码
  6. Scala 函数(二)
  7. 修改eclipse背景颜色更好的保护眼睛
  8. html中pre使用方法,HTML中pre标签的用法
  9. Android Studio 安卓sqlite数据库查询
  10. 学生耳机买什么牌子好?学生党蓝牙耳机推荐