51nod 1021 石头归并
第1行:N(2 <= N <= 100)
第2 - N + 1:N堆石子的数量(1 <= A[i] <= 10000)
输出最小合并代价
4
1
2
3
4
19
这道题初一看很容易往贪心方向想,后来看了提示才知道是dp,可是并不知道怎么dp。。
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
const int INF = << ;
int sum[];
int vis[];
int dp[][];
int main(){
int n;
while(~scanf("%d",&n)){
int i,len,temp;
memset(vis,,sizeof(vis));
memset(sum,,sizeof(sum));
memset(dp,,sizeof(dp));
for(i=;i<=n;i++){
scanf("%d",&vis[i]);
sum[i]=sum[i-]+vis[i];
}
for(len=;len<n;len++){
for(i=;i+len<=n;i++){
dp[i][i + len] = INF;
temp=sum[i+len]-sum[i-];
for(int k=i;k<i+len;k++)
dp[i][i+len]=min(dp[i][i+len],dp[i][k]+dp[k+][i+len]+temp);
}
}
printf("%d\n",dp[][n]);
}
}
51nod 1021 石头归并的更多相关文章
- 51nod 1021 石子归并(dp)
51nod 1021 石子归并 题解:从i到j合并的最小值:dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + sum[j] - sum[i-1]); 最 ...
- 51nod 1021 石子归并 区间DP
1021 石子归并 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 取消关注 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆 ...
- 51nod 1021 石子归并 【区间DP】
1021 石子归并 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子 ...
- 51nod 1021 石子归并 - 区间dp(经典)
题目地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1021 经典区间dp,dp[i][j] 表示将从 i 到 j 堆 ...
- 51nod 1021 石子归并
区间dp 递推比递归的常数要小 所以还是尽量学会递推吧 看题解 各种恶心啊 有木有 还是视频讲的直接呃 不过就是讲的有点儿慢 链接:https://www.bilibili.com/vide ...
- 51Nod 1021 石子归并(动态规划)
#include <iostream> #include <algorithm> #include <string> #include <iostream&g ...
- 51nod 1021 石子归并 (动态规划 简单代码)
题目: 思路:动态规划,递推式子 dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + sum[j] - sum[i-1]); dp[i][j]表示 ...
- 51Nod 1021 石子归并(区间dp经典入门)
题意: N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价. n<=100 思 ...
- AC日记——石子归并 51nod 1021
石子归并 思路: 经典动态规划——归并类问题: 我们把状态划为n个,即1-n的n个长度为n个状态: 那么,每个长度为i的状态都可以由i-1个长度为i-1的状态推出: 所以,dp转移方程: dp[i][ ...
随机推荐
- bigDecimal 使用小结
关于四舍五入: ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2 ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1 注 ...
- 【阿里云产品公测】ACE、BAE及SAE云引擎对比评测
作者:阿里云用户bailimei 先前我已发布一篇关于ACE的评测,在跟朋友聊天的时候我们讨论了目前市面上的三款云引擎产品,这三家的云引擎我都有在用,今天有时间顺便写篇关于阿里云ACE.百度BAE和新 ...
- Android小项目之四 自动更新检查的逻辑
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- 新手教程之使用Xib自定义UITableViewCell
新手教程之使用Xib自定义UITableViewCell 前言 首先:什么是UITableView?看图 其次:什么是cell? 然后:为什么要自定cell,UITableView不是自带的有cell ...
- 重构19-Extract Factory Class(提取工厂类)
在代码中,通常需要一些复杂的对象创建工作,以使这些对象达到一种可以使用的状态.通常情况下,这种创建不过是新建对象实例,并以我们需要的方式进行工作.但是,有时候这种创建对象的需求会极具增长,并且混淆了创 ...
- 手机端Post 数据
var data =""; using (StreamReader readStream = new StreamReader(context.Reques ...
- mysql_DML_delete
delete from 表名 删除表里的数据 可以配合where试用
- oc中的分类/协议/属性
1.分类:当我们想给某个类加一些方法时,如果不想通过继承这个类来实现,可以通过分类给这个类加一些行为,这个过程与继承相比更加轻量化. @interface NSString (SubClass) -( ...
- 十大Intellij IDEA快捷键(转)(2015年06月15日)
注:本文转自:http://blog.csdn.net/dc_726/article/details/42784275 Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow ...
- 跟我学习dubbo-ZooKeeper注册中心安装(2)
注册中心 可选方案:zookeeper.Redis 1.建议使用dubbo-2.3.3以上版本的使用zookeeper注册中心客户端 2.Zookeeper是Apache Hadoop的子项目,强度相 ...