2018.3.17 模拟赛——(2)删数

2018.3.17 模拟赛——(2)删数

大家好,又见面了,我是全栈君。

题目大意:

给出一个序列x,从左边或者右边删数,使得总价值最大。
删除从i位置到k位置上的所有的数。操作价值为|xi – xk|*(k-i+1),如果只删除一个数,操作价值为这个数的值。

解题思路:

区间dp
动态转移方程为:

f[i][j]=max(f[i][k]+f[k+1][j],f[i][j]);(f[i][j]=删除i到j的最大价值)f[i][j]=max(f[i][k]+f[k+1][j],f[i][j]);(f[i][j]=删除i到j的最大价值)

首先f[i][i]肯定是它本身 然后用(|xi — xk|×(k-i+1))求出f[i][j] 的值, (n≥j>i)

最后枚举一下就可以了

源程序:

#include<cstdio>
#include<algorithm>
using namespace std;
int ak,n,a[105],f[105][105];
int main()
{
    //freopen("remove.in","r",stdin);
    //freopen("remove.out","w",stdout);
    int o=0;
    scanf("%d",&n);
    for (int i=1;i<=n;i++)
     scanf("%d",&f[i][i]);     
    for (int i=1;i<n;i++)
     for (int j=i+1;j<=n;j++)
       f[i][j]=abs(f[j][j]-f[i][i])*(j-i+1);//初始化
    for (int i=1;i<=n;i++)
     for (int j=i;j<=n;j++)
      for (int k=i;k<j;k++)//枚举删除范围
       f[i][j]=max(f[i][k]+f[k+1][j],f[i][j]);//取最大价值
    printf("%d",f[1][n]);//愉快输出
}

转载于:https://www.cnblogs.com/Juruo-HJQ/p/9308681.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107628.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 浅复制,深复制详解下载_复制时如何跳过一部分内容

    浅复制,深复制详解下载_复制时如何跳过一部分内容文章目录浅复制和深复制String类实现浅复制和深复制有关浅复制与深复制的定义为:对类进行复制的时候按位复制,即把一个对象各数据成员的值原样复制到目标对象中。当类中涉及到指针类型数据成员的时候,往往就会产生指针悬挂问题。看以下结构:class A{ public: int* a;};A a1;A b1=a1;b1=a1执行的是浅复制,此时a1.a和b1….

    2022年8月18日
  • phpstorm 2022 激活码_在线激活

    (phpstorm 2022 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
  • android调用so文件_android加载大图

    android调用so文件_android加载大图原文地址点击打开链接一、前言Android中有时候为了效率以及平台开发库的支持,难免会用到NDK开发,那么都会产生一个so文件,通过native方法进行调用,开发和调用步骤很简单,这里就不多说了,本文主要来介绍,我们在使用so的时候总是会出现一些常见的问题,而现在插件化开发也很普遍了,有时候插件中也会包含一些so文件,需要加载,这时候也会出现一些问题。本文就来详细总

    2022年9月18日
  • Java程序概述

    Java程序概述Java程序概述一、Java开发环境1、Java程序编译执行的过程2、Java平台概述3、JDK部分常用工具二、Application三、Applet四、Servlet五、JSP和JavaBean六、脚本一、Java开发环境1、Java程序编译执行的过程Java程序在编译执行过程中,首先把源文件(.java文件)编译成字节码文件,即类文件(.class);然后由解释器负责解释执行类文件。2、Java平台概述Java平台包括Java应用程序接口(API)和Java虚拟机(JavaVirtual

    2022年7月7日
  • 千百撸[通俗易懂]

    千百撸[通俗易懂]千百撸(黄网)

    2022年7月2日
  • eclipse android环境搭建,Eclipse Android开发环境搭建教程

    eclipse android环境搭建,Eclipse Android开发环境搭建教程EclipseAndroid开发环境搭建教程是本文要介绍的内容,主要是来了解并学习EclipseAndroid环境搭建的过程,具体关于EclipseAndroid内容的详解来看本文。EclipseAndroid开发准备:1、javasdk2、eclipsehttp://www.eclipse.org/downloads/3、android-sdk-windows安装好java环境和ecli…

    2022年7月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号