首页 > 其他分享 >合并石子

合并石子

时间:2023-04-07 13:47:12浏览次数:42  
标签:std main int 石子 合并 include

#include<iostream>
#include<string.h>

using namespace std;

const int N=310;

int n;
int s[N];
int f[N][N];

int main()
{
    scanf("%d",&n);
    
    memset(f,0x3f,sizeof f);
    for(int i=1;i<=n;i++)
    {
        int x;
        scanf("%d",&x);
        s[i]=s[i-1]+x;
        f[i][i]=0;
    }
    
    for(int len=2;len<=n;len++)//区间长度
    {
        for(int l=1;l+len-1<=n;l++)//状态 枚举区间起点
        {
            int r=l+len-1;
            for(int k=l;k<r;k++)//决策
            f[l][r]=min(f[l][r],f[l][k]+f[k+1][r]+s[r]-s[l-1]);
        }
    }
    
    printf("%d",f[1][n]);
    
    return 0;
}

 

标签:std,main,int,石子,合并,include
From: https://www.cnblogs.com/tolter/p/17295870.html

相关文章

  • 视频剪辑工具,批量分割视频、合并视频、嵌套合并视频、支持添加字幕、调整色调
    最近有很多朋友在问,怎么剪辑视频,比如合并视频、分割视频、添加封面等等,该如何实现呢?今天小编给大家分享一个新的剪辑技巧,下面一起来试试吧。材料准备:一台Win系统的电脑安装一个好简单批量智剪视频素材若干步骤演示:步骤1:运行【好简单批量智剪】,其中有多个剪辑技巧,比如说分割视频,可以......
  • OS-Linux-Tool-可视化比较与合并工具Meld
    OS-Linux-Tool-可视化比较与合并工具Meld在Linux系统上有时会需要进行文件比较与合并,Meld能提供相关功能。http://meldmerge.org/http://meldmerge.org/help/MeldVisualdiffandmergetoolMeldhelpsyoucomparefiles,directories,andversioncontrolledprojects.......
  • 合并有序线性表
    一看就懂的合并有序线性表源码把合并后的线性表放到新创建的第三个线性表中两个表的长度可能会不一样,所以一个表比较完了,另一个表可能没比较完,但两个表中的每个元素肯定都互相比较了一次,所以小的元素已经全部放到了前边,没比较完的那个表直接加在新表的后面就行SqlistA=[1,2......
  • leetcode1000. 合并石头的最低成本
    有N堆石头排成一排,第i堆中有stones[i]块石头。每次移动(move)需要将连续的K堆石头合并为一堆,而这个移动的成本为这K堆石头的总数。找出把所有石头合并成一堆的最低成本。如果不可能,返回-1来源:力扣(LeetCode)链接:https://leetcode.cn/problems/minimum-cost-to-merge-st......
  • 动态开点线段树&线段树合并学习笔记
    动态开点线段树使用场景\(4\timesn\)开不下。值域需要平移(有负数)。什么时候开点显然,访问的节点不存在时(只会在修改递归时开点)。trick区间里面有负数时,\(mid=(l+R-1)/2\)。防止越界。例如区间\([-1,0]\)。开点上限考虑到update一次最多开\(\logV\)个......
  • python 合并多个PPT
    #encoding=utf8#-*-coding:utf-8-*-#pipinstallaspose.slides-ihttps://pypi.tuna.tsinghua.edu.cn/simpleimportaspose.slidesasslidesfrompptximportPresentation#导入PPT库importwin32com.client,sysfromglobimportglob#打開第一張PPTwith......
  • python用于新建空文件夹/文件&以时间命名的文件&文件夹内的文件合并
    '''用于新建空文件夹'''path="/root/temp/"defmake_Empty_Dir(path):'''如果path这个路径下存在文件夹,就先删除它,再新建它,如果不存在,就新建它,目的是为了temp为新的空文件夹'''importosimportshutilifos.path.isdir(path......
  • 合并两个有序链表
    将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]提示:两个链表的节点数目范围是[0,50......
  • 代码随想录Day20-Leetcode654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验
    654.最大二叉树题目链接:https://leetcode.cn/problems/maximum-binary-tree/基本的模拟思路很快/***Definitionforabinarytreenode.*functionTreeNode(val,left,right){*this.val=(val===undefined?0:val)*this.left=(left===undefined......
  • 启发式合并(树上)
    一般用于:查询每一个子树的相关所有信息, 内容:dfs,后,合并儿子的时候,继承一个重儿子,然后把其他儿子暴力合进去就行了,最坏的时间复杂度:NlongN 如何继承的时候不是暴力捏?给每一个点赋值一个新的ID,就行了. 重点是在结构体tr[]节点里面的各种定义的东西, ......