Brush Mode --- Nyoj 737 分类: Brush Mode 2014-03-25 08:10 202人阅读 评论(0) 收藏
石子合并(一)
- 描述
- 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。
- 输入
- 有多组测试数据,输入到文件结束。
每组测试数据第一行有一个整数n,表示有n堆石子。
接下来的一行有n(0< n <200)个数,分别表示这n堆石子的数目,用空格隔开 - 输出
- 输出总代价的最小值,占单独的一行
- 样例输入
-
3
1 2 3
7
13 7 8 16 21 4 18 - 样例输出
-
9
239超时代码,暴力模拟:
#include<stdio.h>
int min = 0;
void find(int s[],int k,int d){
int i, j, v, c;
int b[100]; if(k==1 && d<=min) min = d; for(v=0;v<k;v++) b[v] = s[v]; for(i=0;i<k-1;i++){ for(v=0;v<k;v++){
s[v] = b[v];
} s[i]=s[i]+s[i+1];
c = d + s[i]; for(j=i+2;j<k;j++){
s[j-1]=s[j];
} find(s,k-1,c);
}
}
int main(){
int num[100],sum[100];
int n, i;
while(~scanf("%d",&n)){
for(i=0;i<n;i++){
scanf("%d",&num[i]);
min+=num[i];
}
min*=n;
find(num,n,0);
printf("%d\n",min);
} return 0;
}3重循环的DP= =通过了:
-
#include<stdio.h>
#include<string.h> int min(int a,int b){
return a>b?b:a;
} int sumd(int a[],int ai,int bi){
int i, c=0;
for(i=ai;i<=bi;i++) c+=a[i];
return c;
} int main(){
int num[210][210];
int cur[210];
int sum[210][210];
int n, i, j, k; while(~scanf("%d",&n)){
memset(num,0,sizeof(num));
memset(cur,0,sizeof(cur));
for(i=0;i<n;i++) scanf("%d",&cur[i]);
for(i=0;i<n;i++)
for(j=i;j<n;j++)
sum[i][j]=sumd(cur,i,j); for(i=1;i<n;i++){
for(j=0;j<n-i;j++){
for(k=0;k<i;k++){ if(num[j][j+i]) num[j][j+i] = min((num[j][j+k]+num[j+k+1][j+i]+sum[j][j+i]),num[j][j+i]);
else num[j][j+i] = (num[j][j+k]+num[j+k+1][j+i]+sum[j][j+i]); }
}
}
printf("%d\n",num[0][n-1]);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
Brush Mode --- Nyoj 737 分类: Brush Mode 2014-03-25 08:10 202人阅读 评论(0) 收藏的更多相关文章
- A simple problem 分类: 哈希 HDU 2015-08-06 08:06 1人阅读 评论(0) 收藏
A simple problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- C#类型 分类: C# 2015-03-09 08:44 202人阅读 评论(0) 收藏
C# 类型 引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制.复制又 ...
- const char*, char const* and char *const 分类: C/C++ OpenCV 2014-11-08 18:10 114人阅读 评论(0) 收藏
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目. 事实上这个概念谁都有只是三种声明方式非常相似很容易记混. Bjarne在他的 ...
- Mahout快速入门教程 分类: B10_计算机基础 2015-03-07 16:20 508人阅读 评论(0) 收藏
Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单 ...
- NYOJ-214 单调递增子序列(二) AC 分类: NYOJ 2014-01-31 08:06 233人阅读 评论(0) 收藏
#include<stdio.h> #include<string.h> int len, n, i, j; int d[100005], a[100005]; int bin ...
- NYOJ-235 zb的生日 AC 分类: NYOJ 2013-12-30 23:10 183人阅读 评论(0) 收藏
DFS算法: #include<stdio.h> #include<math.h> void find(int k,int w); int num[23]={0}; int m ...
- Improving the GPA 分类: 贪心 HDU 比赛 2015-08-08 16:12 11人阅读 评论(0) 收藏
Improving the GPA Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- OC基础知识总结 分类: ios学习 OC 2015-06-26 17:58 58人阅读 评论(0) 收藏
//OC: Objective-C, 面向对象的C语言 //OC与C的区别 //1.OC是C的超集, C语言的所有语法都可以在OC中使用 //2.OC是面向对象 //3.OC是一门运行时语言 //4. ...
- OC基础:类的扩展.协议 分类: ios学习 OC 2015-06-22 19:22 34人阅读 评论(0) 收藏
//再设计一个类的时候,有些方法需要对外公开(接口),有些仅供内部使用. 类的扩展:为类添加新的特征(属性)或者方法 对已知类: 1.直接添加 2.继承(在其子类中添加实例变量和方法) 3.使用ext ...
随机推荐
- require.js js模块化方案
一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载.下面的网页代 ...
- ViewGroup 和 View 事件传递及处理小谈
前言 在自定义组件的时候少不了会去处理一些事件相关的东西,关于事件这块网上有很多文章,有说的对的也有说的不对的,我在理解的时候也有过一段时间的迷惑,现在把自己理解的东西写下来,给有相同疑问的朋友提供些 ...
- linux 的开机启动脚本顺序
linux 开机启动脚本顺序 linux 开机启动脚本顺序. 第一步:启动内核 第二步:执行init (配置文件/etc/inittab) 第三步:启动相应的脚本,并且打开终端/etc/init.d ...
- Qt使用默认浏览器打开网页
#include <QDesktopServices> #include <QUrl> QDesktopServices::openUrl(QUrl("http:// ...
- Windows Server 2003开机自动启动MySQL服务设置方法
Windows Server 2003开机自动启动MySQL服务设置方法 发布时间:2014-12-19 更新时间:2014-12-24 来源:网络 作者:eaglezhong 关键词: 2003 e ...
- hadoop2—namenode—HA原理详解
在hadoop1中NameNode存在一个单点故障问题,也就是说如果NameNode所在的机器发生故障,那么整个集群就将不可用(hadoop1中有个SecorndaryNameNode,但是它并不是N ...
- 容易被忽略的事----sql语句中select语句的执行顺序
关于Sql中Select语句的执行顺序,一直很少注意这个问题,对于关键字的使用也很随意,至于效率问题,因为表中的数据量都不是很大,所以也不是很在意. 今天在一次面试的时候自己见到了,感觉没一点的印象, ...
- POJ——3984
走迷宫问题,POJ上面的题 #include <stdio.h> #include <stdlib.h> #define SIZE 5 bool findpath = fals ...
- wpf mvvm MenuItem的Command事件
这是一个事件的辅助类,可以通过它实现MenuItem的Command事件 public class MyCommands : Freezable, ICommand, ICommandSource { ...
- C基础 数据序列化简单使用和讨论
前言 C中对序列化讨论少, 因为很多传输的内容都有自己解析的轮子. 对于序列化本质是统一编码, 统一解码的方式. 本文探讨是一种简单的序列化方案. 保证不同使用端都能解析出正确结果. 在文章一开始, ...