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]=ij)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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 利用chardet检测网页编码

    环境:Win7_x64+python3.4.3需要先下载chardet并进行安装,下载地址:https://pypi.python.org/packages/source/c/chardet/c

    2021年12月25日
    43
  • java软件工程师月薪多少_软件工程师的工资待遇

    java软件工程师月薪多少_软件工程师的工资待遇java软件工程师月薪多少?到底能拿到高工资吗?想知道吗?相信这个问题困扰了很多刚入行学习java技术的人,现在带着疑问跟随达内北京java培训机构一起去了解一下吧。其实,随着互联网的发展,java软件工程师的市场需求也是非常大的,因此,java软件工程师的未来发展前景以及薪资待遇都是不错的,至于Java软件工程师一个月能挣多少钱的问题,其实Java软件工程师月薪的问题,事实上没有什么标准答案,…

    2022年9月24日
    3
  • 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略

    精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略精通WebAnalytics2.0(4)第二章:选择你的网络分析灵魂伴侣的最佳策略   精通WebAnalytics2.0:用户中心科学与在线统计艺术第二章:选择你的网络分析灵魂伴侣的最佳策略  在WebAnalytics2.0的新…

    2022年6月28日
    18
  • JAVA对象转JSON字符串时格式化日期_oracle clob转字符串

    JAVA对象转JSON字符串时格式化日期_oracle clob转字符串本案例所有代码均为原创,使用Java手写,没有借鉴其他类似工具库和网上论坛博客,也许没有经过充分测试,可能出现未知bug,因此不建议拿到正式的项目里使用。Java对象就像一个文件夹一样,没有办法知道其深度,所以采用了递归。性能方面没有测试,个人认为没有特别耗费性能的地方,除非你的对象包含很多层级。它可以支持null,字符串,数字、日期、集合等多种类型,包括以上类型的多层嵌套,都没有问题。源码不多,如下:importjava.lang.reflect.Field;importjava.lang

    2022年9月21日
    4
  • FM Bandwidth IQ Rate Sample Rate

    FM Bandwidth IQ Rate Sample Rate在labview中,编写FM的程序经常会涉及到以下几个名词,他们的关系是怎样的呢?BandwidthdeviationfrequencymodulatingfrequencyIQRateSampleRate首先关于带宽Bandwidth他是由以下公式决定的。请参考Carson’sRule。FMBandwidth=2(Δf + fm)

    2022年10月17日
    2
  • Linux C中的open函数「建议收藏」

    Linux C中的open函数「建议收藏」open函数属于Linux中系统IO,用于“打开”文件,代码打开一个文件意味着获得了这个文件的访问句柄。intfd=open(参数1,参数2,参数3);intfd=open(constchar*pathname,intflags,mode_tmode);1.句柄(filedescriptor简称fd)首先每个文件都属于自己的句柄,例如标准输入是0,标准输出是…

    2022年5月9日
    50

发表回复

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

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