codevs 2102 石子归并2
传送门
2102 石子归并 2
在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。
试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.
数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.
输出共2行,第1行为最小得分,第2行为最大得分.
4
4 4 5 9
43
54
经典的区间动态规划。
【题目大意】石子归并不是链型而是环形。
【思路】断环成链。把石子再复制一条。‘
如:2 1 5 3 7 再复制一条接上,2 1 5 3 7 2 1 5 3 7,
那么从 2 1 5 3 7 2 1 5 3 7任意取长度为5的链进行石子归并即可。
【code】
#include<iostream>
#include<cstdio>
using namespace std;
int w[],sum[],f[][],g[][];
int n,ans_max=-0x3ffff,ans_min=0x3ffff;
int main()
{
scanf("%d",&n);
for(int i=; i<=n; i++)
{
scanf("%d",&w[i]);
w[n+i]=w[i];
}
for(int i=;i<=n*;i++)
sum[i]=sum[i-]+w[i];
for(int i=; i<=n*n; i++)
for(int j=i-; j>=&&i-j<n; j--)
{
f[j][i]=0x3fff;
for(int k=j; k<i; k++)
{
f[j][i]=min(f[j][i],f[j][k]+f[k+][i]+sum[i]-sum[j-]);
g[j][i]=max(g[j][i],g[j][k]+g[k+][i]+sum[i]-sum[j-]);
}
}
for(int i=; i<=n; i++)
{
ans_max=max(ans_max,g[i][i+n-]);
ans_min=min(ans_min,f[i][i+n-]);
}
printf("%d\n%d",ans_min,ans_max);
return ;
}
codevs 2102 石子归并2的更多相关文章
- CODEVS 2102 石子归并 2
[题目描述 Descriptin] 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分.试设计出1个算法, ...
- codevs——2102 石子归并 2(区间DP)
时间限制: 10 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 在一个园形操场的四周摆放N堆石子,现要将石子有次序地 ...
- 2102 石子归并 2codevs
2102 石子归并 2codevs 题目描述 Description 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为 ...
- Codevs 1048 石子归并
1048 石子归并 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合 ...
- codevs 1048石子归并
传送门 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], 每次 ...
- codevs——T2102 石子归并 2
http://codevs.cn/problem/2102/ 时间限制: 10 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Des ...
- codevs——1048 石子归并 (区间DP)
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并 ...
- codevs——T1048 石子归并
http://codevs.cn/problem/1048/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Descriptio ...
随机推荐
- cocos2d-x3.0 PageView
.h加入例如以下代码: void pageViewEvent(Ref *pSender, PageViewEventType type); .m layout = Layout::create(); ...
- 【matlab】:matlab中不断的出现计算过程怎么办
这个问题是会常常性出的.就是matlab中不断的出现计算. 关于这个问题,我们须要考虑的是自己是不是写错了,通常会出现以下两种可能的错误 1,关于计算的函数没有写分号 :这样的是致命问题,假设函数不写 ...
- IOS_DatePicker_PickerView_SegmentControl_键盘处理
H:/0712/01_UIController_MJViewController.m // MJViewController.m // 01-总结复习 // Created by apple on 1 ...
- sonar+Jenkins代码覆盖率检测
最近公司在搞代码覆盖率检查,简单看了一下结合Jenkins +jacoco + sonar做了一下主要涉及到项目层面和Jenkins层面的东西: 这里只讲一下集成,不讲解sonar的安装Jenkins ...
- Spring.net1.3.1+Nhibernate3.0+Mysql/Access/SqlServer/Oracel/SQlite
详情请看我的博文:http://www.ruisoftcn.com/blog/article.asp?id=999
- MFC小程序02————— 不规则窗体小应用程序
什么不说了.先上程序截图: 执行结果是有一棵有星星在闪烁的圣诞树.还会循环播放背景音乐. 之前也是在网上看到类似的一个程序.然后自己近期也在学MFC.所以就模仿着写了一个, 当中使用的是GDI+来显示 ...
- android中的常见对话框
在android中对话框是一种常见的操作,常见的对话框有下面几种: 以下是xml布局文件: <LinearLayout xmlns:android="http://schemas.an ...
- iOS开发 - UIViewController控制器管理
创建一个控制器 控制器常见的创建方式有下面几种 //通过storyboard创建 //直接创建 ViewController *vc = [[ViewController alloc] init]; ...
- linux 块设备驱动 (三)块设备驱动开发
一: 块设备驱动注册与注销 块设备驱动中的第1个工作通常是注册它们自己到内核,完成这个任务的函数是 register_blkdev(),其原型为:int register_blkdev(unsigne ...
- 图像处理之图像增强项目---csdn去雾专栏1
(一)高斯低通滤波去噪 高斯低通滤波器(Gaussian Low Pass Filter)是一类传递函数为高斯函数的线性平滑滤波器.又由于高斯函数是正态分布的密度函数.因此高斯低通滤波器对于去除服从正 ...