Pangu and Stones(HihoCoder-1636)(17北京OL)【区间DP】
题意:有n堆石头,盘古每次可以选择连续的x堆合并,所需时间为x堆石头的数量之和,x∈[l,r],现在要求,能否将石头合并成一堆,如果能,最短时间是多少。
思路:(参考了ACM算法日常)DP[i][j][k],表示当前状态下[i,j]这个区间分成了k堆。
状态转移:1.k=1时,dp[i][j][k]=min(dp[i][j][D]+num[j]-num[i-1]),其中D∈[l,r],
2.k!=1时,dp[i][j][k]=min(dp[i][z][1]+dp[z+1][j][k-1]),(合并成k堆时,可以转化为k-1堆与1堆合并,此时就是区间DP的思路了)
代码如下:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n,l,r,a[];
int dp[][][],num[];
int main(){
while(~scanf("%d%d%d",&n,&l,&r)){
num[]=;
memset(dp,0x3f,sizeof(dp));
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
num[i]=num[i-]+a[i];
}
for(int i=;i<=n;i++)
dp[i][i][]=;
for(int i=;i<=n;i++){
for(int j=;j+i-<=n;j++){
for(int k=i;k>=;k--){
if(k==){
for(int z=l;z<=r;z++)
dp[j][j+i-][k]=min(dp[j][j+i-][k],dp[j][j+i-][z]+num[j+i-]-num[j-]);
}
else {
for(int z=j;z<j+i-;z++)
dp[j][j+i-][k]=min(dp[j][j+i-][k],dp[j][z][]+dp[z+][j+i-][k-]);
}
}
}
}
if(dp[][n][]==0x3f3f3f3f)
printf("0\n");
else printf("%d\n",dp[][n][]);
}
return ;
}
By xxmlala
Pangu and Stones(HihoCoder-1636)(17北京OL)【区间DP】的更多相关文章
- Pangu and Stones HihoCoder - 1636 区间DP
Pangu and Stones HihoCoder - 1636 题意 给你\(n\)堆石子,每次只能合成\(x\)堆石子\((x\in[L, R])\),问把所有石子合成一堆的最小花费. 思路 和 ...
- [ICPC 北京 2017 J题]HihoCoder 1636 Pangu and Stones
#1636 : Pangu and Stones 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In Chinese mythology, Pangu is the fi ...
- hihoCoder 1636 Pangu and Stones
hihoCoder 1636 Pangu and Stones 思路:区间dp. 状态:dp[i][j][k]表示i到j区间合并成k堆石子所需的最小花费. 初始状态:dp[i][j][j-i+1]=0 ...
- hihocoder 1636 : Pangu and Stones(区间dp)
Pangu and Stones 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In Chinese mythology, Pangu is the first livi ...
- icpc 2017北京 J题 Pangu and Stones 区间DP
#1636 : Pangu and Stones 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In Chinese mythology, Pangu is the fi ...
- 2017ICPC北京 J:Pangu and Stones
#1636 : Pangu and Stones 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In Chinese mythology, Pangu is the fi ...
- 2017北京网络赛 J Pangu and Stones 区间DP(石子归并)
#1636 : Pangu and Stones 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In Chinese mythology, Pangu is the fi ...
- hihoCoder #1320 : 压缩字符串 区间dp
/** 题目:hihoCoder #1320 : 压缩字符串 链接:https://hihocoder.com/problemset/problem/1320 描述 小Hi希望压缩一个只包含大写字母' ...
- 2021.07.17 P4170 染色(区间DP)
2021.07.17 P4170 染色(区间DP) [P4170 CQOI2007]涂色 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.目标状态可以由哪些状态转移过来. ...
随机推荐
- Js 之移动端图片上传插件mbUploadify
一.下载 https://pan.baidu.com/s/1NEL4tkHoK4ydqdMi_hgWcw 提取码:vx7e 二.Demo示例 <div class="weui_uplo ...
- ArcGIS超级工具SPTOOLS-锐角检查,获得内角并判断是否凸多边形,获得线(面)两个折点方向
1.1 锐角检查 操作视频: https://weibo.com/tv/v/HCNNXhm5F?fid=1034:4392479009475111 可以是面.线夹角锐角检查 输出锐角点的位置和角度( ...
- error:Cannot pull with rebase
原文文链接:https://blog.csdn.net/u012385190/article/details/70670213git 执行git pull –rebase报错误如下: error: C ...
- hadoop2.7.7+habse2.0.5+zookeeper3.4.14+hive2.3.5单机安装
环境 腾讯云centos7 1.hadoop下载 http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar ...
- Storm和Hadoop 区别
Storm - 大数据Big Data实时处理架构 什么是Storm? Storm是:• 快速且可扩展伸缩• 容错• 确保消息能够被处理• 易于设置和操作• 开源的分布式实时计算系统- 最初由Na ...
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_04-vuejs研究-vuejs基础-v-model指令
<!DOCTYPE html> <html lang="en" xmlns:v‐on="http://www.w3.org/1999/xhtml&quo ...
- css简单学习属性2---背景图片
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python3 super().__init__() 和 __init__() 的区别
1.单继承 super().__int__()和 Base.__init__(self)是一样的, super()避免了基类的显式调用. class Base(object): def __init_ ...
- JAVA 基础编程练习题31 【程序 31 数组逆序】
31 [程序 31 数组逆序] 题目:将一个数组逆序输出. 程序分析:用第一个与最后一个交换. package cskaoyan; public class cskaoyan31 { @org.jun ...
- 我的dbtreeview–treeview直接连接数据表_delphi教程
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs ...