【codevs1048】石子归并
提交: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】石子归并相关推荐
- 【codevs1048】【codevs115406TG】石子归并、能量项链,序列dp的典型题目
1048 石子归并 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并 ...
- Codevs 3002 石子归并 3(DP四边形不等式优化)
3002 石子归并 3 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次 ...
- 区间DP{环形}:石子归并-2
题目描述 Description 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法, ...
- codevs 1048 石子归并
传送门 1048 石子归并 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], ...
- GarsiaWachs算法:石子归并问题
1023 石子归并 V3 基准时间限制:2 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2 ...
- 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 ...
- 石子归并 51Nod - 1021
N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价. 例如: 1 2 3 4,有不少 ...
- 算法讲解 -- 区间dp经典模型与优化(石子归并)
石子合并问题是最经典的DP问题.首先它有如下3种题型: PPT讲解:点击打开链接 (1)有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为新合成的一堆石子的数 ...
- 动态规划石子排序java_动态规划之石子归并
题目:有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量 和w[i]+w[i+1].问安排怎样的合并顺序,能够使得总合并代价达到最小. 输 ...
最新文章
- 【英文文本分类实战】之三——数据清洗
- Django介绍工程搭建
- MySQL在线DDL工具pt-osc
- 攻城狮危险:波士顿动力机器狗去福特当工程师了!
- Docker映像存储在哪里? Docker容器路径介绍
- SQL查询重复记录,删除重复记录
- python循环报数游戏_报数游戏python 解答
- 使用vs2008搭建php扩展环境
- C#----接口的显式实现
- echarts 柱状图+折线图
- MySQL 索引介绍!
- Cisco-EIGRP分析总结
- 2022年总结:打开新世界,踏上新征程
- Java 多文件夹合并
- 第四节:逻辑控制【java】
- 阿里云服务器华北1、华北2、华北3、华北5地域在哪个城市为什么没有华北4?...
- 共享科技商务岗位竞聘PPT模板
- 联想笔记本升级win10后黑屏无法开机解决方案
- 删除新版UniAccess Agent 办公室监控软件的方法
- linux下不卸载nginx安装第三方模块