Pangu and Stones HihoCoder - 1636 (区间dp)

基于FMCW技术的毫米波雷达测速原理与应用 调频连续波(FMCW)技术是毫米波雷达中实现高精度测速的核心方法之一。本文详细介绍了FMCW测速的基本原理、信号处理流程以及在实际应用中的关键技术。通过分析FMCW雷达的多普勒效应和频率差测量方法,本文展示了如何利用FMCW技术实现目标速度的高精度检测。此外,本文还探讨了FMCW测速在自动驾驶、智能交通和工业自动化等领域的应用案例,为毫米波雷达开发者提供了理论支持和实践指导。 阅读详情

Pangu and Stones HihoCoder - 1636

In Chinese mythology, Pangu is the first living being and the creator of the sky and the earth. He woke up from an egg and split the egg into two parts: the sky and the earth.

At the beginning, there was no mountain on the earth, only stones all over the land.

There were N piles of stones, numbered from 1 to N. Pangu wanted to merge all of them into one pile to build a great mountain. If the sum of stones of some piles was S, Pangu would need S seconds to pile them into one pile, and there would be S stones in the new pile.

Unfortunately, every time Pangu could only merge successive piles into one pile. And the number of piles he merged shouldn't be less than L or greater than R.

Pangu wanted to finish this as soon as possible.

Can you help him? If there was no solution, you should answer '0'.

Input

There are multiple test cases.

The first line of each case contains three integers N,L,R as above mentioned (2<=N<=100,2<=L<=R<=N).

The second line of each case contains N integers a1,a2 …aN (1<= ai  <=1000,i= 1…N ), indicating the number of stones of  pile 1, pile 2 …pile N.

The number of test cases is less than 110 and there are at most 5 test cases in which N >= 50.

Output

For each test case, you should output the minimum time(in seconds) Pangu had to take . If it was impossible for Pangu to do his job, you should output  0.

Sample Input

3 2 2
1 2 3
3 2 3
1 2 3
4 3 3
1 2 3 4

Sample Output

9
6
0
题意:

给出n堆石头,每次最少合并其中l堆,最多合并r堆,问合成1堆最少需要花费多少时间

分析:

dp[i][j][k]dp[i][j][k]表示i−ji−j这个区间合成k堆所需要的最小时间,故可得状态转移方程式:
d为枚举的区间间隔
1. k==1k==1时:

dp[i][i+d][1]=min(dp[i][i+d][1],dp[i][j][k]+dp[j+1][i+d][1]+sum[i][i+d])dp[i][i+d][1]=min(dp[i][i+d][1],dp[i][j][k]+dp[j+1][i+d][1]+sum[i][i+d])
(l−1<=k<=r−1)(l−1<=k<=r−1)

分析一下这里我们想把区间[i,i+d][i,i+d]的堆合成一堆,这样我们将区间分成两部分[i,j][i,j]和[j+1,i+d][j+1,i+d]
其中令区间[i,j][i,j]目前假设k堆石头,那么我们令区间[j+1,i+d][j+1,i+d]有一堆石头,那么合成一堆相当于把一共k+1堆石头合成一堆,所以花费时间为之前左区间合成k堆石头花费时间+右区间合成一堆石头花费时间,最后加上合成后的总的时间即sum[i][i+d]sum[i][i+d],此时便需要用到限制条件因为我们把k+1k+1堆合成一堆所以用该满足 L≤k+1≤RL≤k+1≤R 即L−1≤k≤R−1L−1≤k≤R−1

2.k≥2k≥2 时:

dp[i][i+d][k]=min(dp[i][i+d][k],dp[i][j][k−1]+dp[j+1][i+d][1])dp[i][i+d][k]=min(dp[i][i+d][k],dp[i][j][k−1]+dp[j+1][i+d][1])

我们想要将区间[i,i+d][i,i+d]的石头堆合成k堆可以分成左区间合成k−1k−1堆,右区间合成1堆

此处k不用做限制:
因为我们观察右区间是合成一堆,是我们上面第一种情况已经求完的一定满足限制,那么左区间的k−1k−1堆石头,最小k−1k−1是1也就是一共合成两堆,这样相当于两边区间都是合成一堆,而合成一堆上面第一种情况已经满足了限制,这里就一定满足限制,同理,k增大,所有情况都是由1堆的情况递推过来的,所以不需要限制,直接相加结果

code:

#include <bits/stdc++.h>
using namespace std;
const int N = 105;
const int inf = 0x3f3f3f3f;
int n,l,r;
int w[N];
int sum[N][N];
int dp[N][N][N];
int main(){
    while(~scanf("%d%d%d",&n,&l,&r)){
        for(int i = 1; i <= n; i++){
            scanf("%d",&w[i]);
        }
        memset(dp,inf,sizeof(dp));
        for(int i = 1; i <= n; i++){
            sum[i][i-1] = 0;
            for(int j = i; j <= n; j++){
                sum[i][j] = sum[i][j-1] + w[j];
                dp[i][j][j-i+1] = 0;
            }
        }
        for(int d = 1; d <= n; d++){
            for(int i = 1; i + d <= n; i++){
                for(int j = i; j <= i + d - 1; j++){
                    for(int k = l-1; k <= r - 1; k++){
                        dp[i][i+d][1] = min(dp[i][i+d][1],dp[i][j][k]+dp[j+1][i+d][1]+sum[i][i+d]);
                    }
                }
                for(int k = 2; k <= d; k++){
                    for(int j = i; j <= i + d - 1; j++){
                        dp[i][i+d][k] = min(dp[i][i+d][k],dp[i][j][k-1]+dp[j+1][i+d][1]);
                    }
                }
            }
        }
        if(dp[1][n][1] == inf)
            puts("0");
        else
            printf("%d\n",dp[1][n][1]);
    }
    return 0;
}
达梦数据库导入报错:[警告]服务器与文件内数据的 CASE_SENSITIVE 参数不匹配,成功终止导入, 但出现警告dimp V8,本地编码:PG_GBK, 导入文件编码:PG_UTF8 达梦数据库管理系统的最新版本是8.0版本,简称DM8。DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM8产品的品质。达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。[警告]服务器与文件内数据的 CASE_SENSITIVE 参数不匹配,成功终止导入, 但出现警告。4.无视警告,输入y,回车。 阅读详情

相关推荐

Windows 2008 R2虚拟机跑金蝶K3 WISE 12.1的5个关键配置细节(附避坑清单)

本文详细介绍了在Windows Server 2008 R2虚拟机中部署金蝶K3 WISE 12.1的5个关键配置细节,包括服务器角色与账户权限、组件服务调优、数据库与中间层协同部署、补丁管理策略及性能优化工具。这些实战经验可帮助企业IT团队避免常见陷阱,确保ERP系统稳定运行。

weixin_30847939的博客 317

pangu.js:为中文文本添加微妙间距的JavaScript库

是一个轻量级的 JavaScript 库,旨在解决中文与英文、数字、符号等之间的微妙间距问题。该项目由 [Vinta Software](https://vinta.com.tw/) 开发并维护。 在处理中英文混排的文本时,我们常常会遇到一些诸如“iPhone6s”、“123abc”这类没有明显间隔的情况,这可能会影响阅读体验。pangu.js 可以自动地在这些字符之间插入微妙的空白间距,使文本

gitblog_00034的博客 748

人工智能机器学习从入门到高级学习资料(含资料下载地址)

机器学习是一个技术含量较高的领域,高效学习需要多种途径相结合.以下是一些推荐的学习资源。首先介绍几个比较有用的社区,包含了丰富的学习资料

2401_86900375的博客 1647

pangu.js 浏览器环境集成:UMD、ES Modules和Script Tag使用对比

pangu.js 是一个专注于中文文本排版优化的 JavaScript 库,能够自动在中文与英文、数字、符号之间添加合适的空格,提升文本可读性和美观性。本文将详细对比 pangu.js 在浏览器环境中的三种主要集成方式:UMD、ES Modules 和 Script Tag,帮助开发者选择最适合的方案。 ## 🔍 pangu.js 核心功能介绍 pangu.js 作为专业的 **中文排版工具

gitblog_01021的博客 1103

SAP GR(Group Reporting)配置篇(一)

GUI组报表的SAP S4HANA1.1全局参数1.1.1 检查全球系统设置菜单路径组报表的SAP S4HANA>合并的全局设置>检查全球系统设置事务代码CXB3说 明定义好分类账、版本、合并科目表后,重新设置。1.2主数据1.2.1定义合并分类账菜单路径组报表的SAP S4HANA>主数据>定义合并分类账事务代码CXL2说 明复制的Y1合并分类账,集团货币为CNY。此功能对分类账进行设置,应用到集团货币分类。

weixin_43853754的博客 1700

3、无限维系统理论中的算子与半群:概念、定理及应用

本博文深入探讨了无限维系统理论中的两个核心概念:里茨谱算子与卢默-菲利普斯定理。文章首先介绍了里茨基的定义与性质,分析了谱、预解集及特征值在无限维系统中的特性,并详细阐述了里茨谱算子的条件及其生成C0-半群的能力,结合阻尼欧拉-伯努利梁模型展示了其应用。随后,文章介绍了卢默-菲利普斯定理及其推论,通过多个偏微分方程实例(如一阶方程、柔性梁、波动方程和扩散问题)说明如何利用该定理判断算子是否生成压缩半群。此外,还强调了状态空间选择和边界条件对系统适定性的重要影响,并总结了相关问题的解决步骤与方法。

flink9streamer的博客 146

Pangu.js:中文英文间优雅的空格解决方案

Pangu.js 是一个简洁而高效的JavaScript库,专门设计用于解决中英文混排时的文本间距问题。该工具基于“盘古之白”的概念,自动在全角字符(如中文汉字)和半角字符(包括字母、数字及符号)之间插入适当的空间,以此提升文本的可读性。由Vinta维护,并在MIT许可证下开源,支持多种语言环境和开发者工具。 ## 项目快速启动 ### 对于终端用户: 如果你是Google Chrome或M

gitblog_00152的博客 585

VCAST创建单元测试工程

选择工作目录,后面创建胡UT工程将会生成到这个目录。

qq_42851449的博客 2479

Pangu and Stones(区间dp)

时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In Chinese mythology, Pangu is the first living being and the creator of the sky and the earth. He woke up from an egg and split the egg into two pa

w571523631的博客 961

如何利用通达信进行选股集合操作

每个交易者实际上都有自己的选股策略,这是必然的,也会有自己的主观干预,但是还是需要从客观热点股票进行一个比对的,才能说主观和客观相结合不至于​偏离方向。 这几天我也发了节前最后一天我的选股策略盘中的选择结果, 我也从网上拿到了热点股票池,当拿到之后你会发现如何从几十个股票热点股票选出核心票,这就是个问题了,这里面一定要通过股价涨跌幅来进行过滤,而不是通过指标,因为一切指标都是根据价格变化而改变的了,所以​这一步不要走弯路。 1、把拿到的热点股票名单,导入通达信自定义板块 2、删除

抢财猫股票课堂 2581

RAG系统中Reranker模型选型实战

本文详细介绍了RAG系统中Reranker模型选型实战,希望能对学习RAG的同学们有所帮助。 文章目录 1. 前言 2. 思路解析 3. 测评数据集构建 3.1 步骤一 3.2 步骤二 3.3 数据示例 3.4 总结 4. 实战代码 4.1 本地模型 4.2 使用第三方的Reranker模型API

herosunly的博客 17万+

hihocoder 1636 Pangu and Stones

题意: n个石子堆排成一排,每次可以将连续的最少L堆,最多R堆石子合并在一起,消耗的代价为要合并的石子总数 求合并成1堆的最小代价,如果无法做到输出0 思路: dp[i][j][k]表示区间[i, j]分成k堆的最小代价,转移有 k=1时: dp[i][j][1] = min(dp[i][p][x-1]+dp[p+1][j][1]+sum[i][j]

abutoto的博客 1238

【WorkBuddy专栏39】零基础也能做小程序——WorkBuddy微信小程序开发完全指南

【WorkBuddy专栏39】零基础也能做小程序——WorkBuddy微信小程序开发完全指南

AI人人懂 3142

Pangu and Stones HihoCoder - 1636 区间DP

Pangu and Stones HihoCoder - 1636 题意 给你\(n\)堆石子,每次只能合成\(x\)堆石子\((x\in[L, R])\),问把所有石子合成一堆的最小花费。 思路 和合石子的那题很像,多加了的一个限制,所有我们可以想到要多开一维数组来计算。 \(dp[i][j][x]:\)表示区间\([i, j]\)的范围内有\(x\)堆石子。 然后我们要分成两类讨论(...

baodiaofu5127的博客 203

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hihocoder 1636 : Pangu and Stones(区间dp)

1636 : Pangu and Stones时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In Chinese mythology, Pangu is the first living being and the creator of the sky and the earth. He woke up from an egg and split the egg

gyr 1710

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Pangu and Stones 【HihoCoder - 1636】【三维区间DP】

题目链接 题目大意 有n个石子,每次选择连续的大于等于L个且小于等于R个的石子合并,问最后合并成一堆石子的最小花费 解题思路 区间dp还是很明显的,不过要加一维,是dp[i][j][k]的意思是i到j这个区间分成k堆的最小花费 感觉自己的dp学的还是不行,就多了一维差点给我搞去世 当k==1的时候: dp[i][j][1] = min ( dp[i][j][1] , dp[i][p][x] + d...

qq_41925919的博客 210

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Pangu and Stones HihoCoder - 1636 区间dp

题目链接:https://vjudge.net/problem/HihoCoder-1636 题意:合并石子,每次合并的堆数有限制。 #include <bits/stdc++.h> using namespace std; const int inf=0x3f3f3f3f; int sum[105],dp[105][105][105],a[105]; int main() { ...

A 139

HihoCoder - 1636——Pangu and Stones (区间DP)

题目链接:https://vjudge.net/contest/329530#problem/J dp【i】【j】【k】:i,j表示区间【i,j】,k表示分为k堆石子。dp表示区间【i,j】分为k堆石子的最小价值 #include<string.h> #include<stdio.h> #include<algorithm> using namespace...

creator平 178

HihoCoder 1636 Pangu and Stones(区间DP)题解

题意:合并石子,每次只能合并l~r堆成1堆,代价是新石堆石子个数,问最后能不能合成1堆,不能输出0,能输出最小代价 思路:dp[l][r][t]表示把l到r的石堆合并成t需要的最小代价。 当t == 1时,dp[i][j][1] = min(dp[i][j][1], dp[i][k][t] + dp[k + 1][j][1] + sum[j] - sum[i - 1]),其中t属于[...

weixin_30344131的博客 94

2017 icpc beijing J/HihoCoder 1636 Pangu and Stones【区间dp】

 Pangu and Stones Time Limit:1000ms Case Time Limit:1000ms Memory Limit:256MB Description In Chinese mythology, Pangu is the first living being and the creator of the sky and the earth. He woke u...

微微风簇浪,散作满河星 428

HihoCoder - 1636:Pangu and Stones (区间dp)

【题解】 题意:给定一堆石子的重量和区间[l,r],每次将连续的x堆石子合并在一起,x∈[l,r],代价是合并的所有石子的和,输出合并为一堆的最小代价。 思路:用dp[i][j][k]表示区间[i, j]分成k堆的最小代价。那么 k=1时:dp[i][j][1] = min(dp[i][j][1],dp[i][p][x-1]+dp[p+1][j][1]+sum[i][j](i<=p&...

菜鸡成长史 158

HihoCoder - 1636 Pangu and Stones (区间DP)

题目链接 题意:给你n堆石头a[n]--每堆石头的数目,每次只能合并L~R堆石头,且每次合并需要消耗sum[i,j]的时间,求合并成一堆的最小时间。 题解:很明显使用区间dp做,状态转移方程如下:       dp[i][j][k]表示从i到j有k堆的最小时间       k==1,dp[i][j][1]=min(...,dp[i][p][k-1]+dp[p+1][j][1]+sum[i][j...

Fushicho_XF的博客 208

Pangu and Stones HihoCoder - 1636[区间dp]

题意:有n个数字,每一次只能合并最少l个最多r个连续的数字,合并的代价为他们的和,询问最小代价把他们合并成一堆,如果不能合并成一堆输出0。 总结:比赛的时候只是想到了一点点区间dp,但是dp的含义没有完全想明白,导致转移方程写不出来,然后卡到了最后,后来看了一下题解dp的含义顿悟了一点点,区间dp接触的还是太少了。 题解:区间dp。 我们规定dp[i][i+d][k]dp[i][i + d][...

Zephyr的博客 216

HihoCoder - 1636 Pangu and Stones——区间dp

题意:在石子合并的基础上做了限制,规定每次至少合并连续l堆石子,至多合并r堆石子 思路:定义dp【i】【j】【k】为区间【i,j】包含k堆石子时的最小值, 最终结果就是dp【1】【n】【1】,即整个区间最终合并为1堆的最小值,明显dp【i】【j】【1】是求解的重点。 求解dp【i】【j】【1】的状态转移方程为:dp【i】【j】【1】 = min(dp【i】【j】【1】, dp【i】【j】【k】

hao_zong_yin的博客 730

hihoCoder1636 Pangu and Stones(区间dp,2017北京)

题意: 有n堆石子,第i堆的数量为a(i), 每次只能将连续的石子合并为一堆,代价为这些石子总数量,要求合并的堆数在[L,R]之间。 求将所有石子合并为一堆的最小代价。 数据范围:n<=100

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 141
上一篇: Secret Poems HihoCoder - 1632(模拟)
下一篇: 七夕节 (约数和公式简单运用)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值