提交:http://codevs.cn/problem/1048/

递推

//f[i]:到i为止的LIS的长度。
//f[i]=max{1,f[j]+1|j<i&&aj<ai}
#include<iostream>
#include<algorithm>
using namespace std;
int n, a[510], f[510], ans;
int main(){cin>>n;for(int i = 1; i <= n; i++)cin>>a[i];for(int i = 1; i <= n; i++){int t = 0;for(int j = 1; j < i; j++)if(a[j]<a[i])t = max(t, f[j]);f[i] = t+1;ans = max(ans, f[i]);}cout<<ans<<"\n";return 0;
}

递归

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 1010, inf=0xffffff;
int w[maxn], f[maxn][maxn];
int dp(int i, int j){if(f[i][j] != inf)return f[i][j];for(int k = i; k <= j; k++)f[i][j] = min(f[i][j], dp(i,k)+dp(k+1,j)+w[j]-w[i-1]);return f[i][j];
}
int main(){int n;  cin>>n;for(int i = 1; i <= n; i++)cin>>w[i];for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)f[i][j] = i==j ? 0 : inf;for(int i = 1; i <= n; i++)w[i] += w[i-1];cout<<dp(1,n)<<"\n";return 0;
}

【codevs1048】石子归并相关推荐

  1. 【codevs1048】【codevs115406TG】石子归并、能量项链,序列dp的典型题目

    1048 石子归并 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并 ...

  2. Codevs 3002 石子归并 3(DP四边形不等式优化)

    3002 石子归并 3 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次 ...

  3. 区间DP{环形}:石子归并-2

    题目描述 Description 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法, ...

  4. codevs 1048 石子归并

    传送门 1048 石子归并  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], ...

  5. GarsiaWachs算法:石子归并问题

    1023 石子归并 V3 基准时间限制:2 秒 空间限制:131072 KB 分值: 320 难度:7级算法题  收藏  关注 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2 ...

  6. 51nod 1021 石子归并 (动态规划 简单代码)

    题目: 思路:动态规划,递推式子 dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + sum[j] - sum[i-1]); dp[i][j]表示合并第i ...

  7. 石子归并 51Nod - 1021

    N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价. 例如: 1 2 3 4,有不少 ...

  8. 算法讲解 -- 区间dp经典模型与优化(石子归并)

    石子合并问题是最经典的DP问题.首先它有如下3种题型: PPT讲解:点击打开链接 (1)有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为新合成的一堆石子的数 ...

  9. 动态规划石子排序java_动态规划之石子归并

    题目:有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量 和w[i]+w[i+1].问安排怎样的合并顺序,能够使得总合并代价达到最小. 输 ...

最新文章

  1. 【英文文本分类实战】之三——数据清洗
  2. Django介绍工程搭建
  3. MySQL在线DDL工具pt-osc
  4. 攻城狮危险:波士顿动力机器狗去福特当工程师了!
  5. Docker映像存储在哪里? Docker容器路径介绍
  6. SQL查询重复记录,删除重复记录
  7. python循环报数游戏_报数游戏python 解答
  8. 使用vs2008搭建php扩展环境
  9. C#----接口的显式实现
  10. echarts 柱状图+折线图
  11. MySQL 索引介绍!
  12. Cisco-EIGRP分析总结
  13. 2022年总结:打开新世界,踏上新征程
  14. Java 多文件夹合并
  15. 第四节:逻辑控制【java】
  16. 阿里云服务器华北1、华北2、华北3、华北5地域在哪个城市为什么没有华北4?...
  17. 共享科技商务岗位竞聘PPT模板
  18. 联想笔记本升级win10后黑屏无法开机解决方案
  19. 删除新版UniAccess Agent 办公室监控软件的方法
  20. linux下不卸载nginx安装第三方模块

热门文章

  1. 使用 matlab 数字图像处理(二)—— 直方图均衡化(极简实现)
  2. hadoop 命令行相关操作
  3. python有几种_Python常见的几种算法
  4. 保护眼睛的电脑设置_专为长期玩电脑的你准备的3种护眼模式,你学到了吗?...
  5. python课程价格-少儿编程培训机构哪家好,儿童编程价格多少钱?家长知多少
  6. 李开复看衰语音识别 这些国内外巨头却有话要说!
  7. 震撼上市!北朝鲜语对话语音识别数据库
  8. 语音识别与语义识别究竟有何区别?
  9. 三星智能电视将用户语音隐私泄露给第三方?
  10. Vue源码分析 - observer.js