首页 > 其他分享 >11.29

11.29

时间:2023-11-29 21:33:58浏览次数:25  
标签:11.29 int 最大值 四边形 sum dp

明天考试。

今天写什么 jb 石子合并 3,然后发现要优化,于是看了眼题解里写的都是四边形不等式。

朴素 N^3算法
void work(int a[],int n)
{
    for(int i=0;i<n;++i)
        dpmin[i][0]=dpmax[i][0]=0;
    for(int j=1;j<n;++j)
        for(int i=0;i<n;++i)
        {
            dpmin[i][j]=INF;
            dpmax[i][j]=0;
            for(int k=0;k<j;++k)
            {
                    dpmin[i][j]=min(dpmin[i][j],dpmin[i][k]+dpmin[(i+k+1)%n][j-k-1]+get(i,j));
                    dpmax[i][j]=max(dpmax[i][j],dpmax[i][k]+dpmax[(i+k+1)%n][j-k-1]+get(i,j));
            }
        }
    minal=dpmin[0][n-1];
    maxal=dpmax[0][n-1];
    for(int i=0;i<n;++i)
    {
        minal=min(minal,dpmin[i][n-1]);
        maxal=max(maxal,dpmax[i][n-1]);
    }
}
优化后的式子 N^2
for (int r=1;r<n;r++)
         for (int i=1;i<n;i++)
        {
            int j=i+r;
            if(j>n) break;
            dp[i][j]=0;
            for (int k=s[i][j-1];k>=s[i+1][j];k++)
                if(dp[i][j]>dp[i][k]+dp[k+1][j])
                {
                    dp[i][j]=dp[i][k]+dp[k+1][j];
                    s[i][j]=k;
                }
            dp[i][j]+=sum[j]-sum[i-1];
        }

但是四边形不等式只能求解求最小值的环形石子合并问题,OJ上是求最大值。

不能求最大值。(为啥)

但是求最大值有一个性质,总是在两个端点的最大者中取到。

于是可以优化成N^2

   for(int i=2;i<=n;++i)
       for(int j=1,k;(k=i+j-1)<=2*n;++j)
            dp[j][k]=max(dp[j][k-1],dp[j+1][k])+sum[k]-sum[j-1];

可以通过 \(n<=2000\) 的数据。
插曲:我电脑上有个Veyon监视,然后我杀了他几次后发现没了,我挺高兴,打了半天代码,然后把我的博客园一刷新,诶我草,我网呢?

原来是我网线松了。

插上去之后监视又回来了。

挺谔谔的

标签:11.29,int,最大值,四边形,sum,dp
From: https://www.cnblogs.com/iNFiNiTE-ENERZY-Overdose-/p/17865920.html

相关文章

  • 11.29每日总结
    今天进行软件构造的实验一实验一:百度机器翻译SDK实验(2023.11.29日完成)任务一:下载配置百度翻译Java相关库及环境(占10%)。任务二:了解百度翻译相关功能并进行总结,包括文本翻译-通用版和文本翻译-词典版(占20%)。任务三:完成百度翻译相关功能代码并测试调用,要求可以实现中文翻译成英文......
  • 11.29闲话
    今天也是为了解LCA,然后学了树链剖分这边写个讲解树剖分为重链剖分和长链剖分通常指的是重链剖分重链剖分对于任意一个位于树上的节点重子节点表示其子节点中子树最大的子结点。如果有多个子树最大的子结点,取其一。如果没有子节点,就无重子节点。轻子节点表示剩余的所有子......
  • 每日总结11.29
    百度机器翻译SDK实验完成百度翻译GUI相关功能代码并测试调用,实现中文翻译成英文,英文翻译成中文。示例代码:packagebaidu.com;importokhttp3.*;importorg.json.JSONObject;importjava.io.*;classSample{publicstaticfinalStringAPI_KEY="";publics......
  • 2023.11.29 日记 Take it easy
    很不想把文化课写到日记里。但今天有点烦了。考试考的内容是要通过刷题得知的,并非学习。我已经在别的平台抱怨过很多次当今教育现状了,无济于事是肯定的,反而会打消学习的积极性。由于训练原因欠了很多课,再加上两个学校的进度不同、考试时间不同,我的学习成果实在像是被虫蛀了一样......
  • 23.11.29(代码大全2读书笔记)
    *第一部分打好基础 第一章欢迎进入软件构建的世界 >软件构建的定义:包括编码与调试、单元测试、规划构建、集成等,没有给出一个明确的定义。>软件构建的重要性:软件构建是编写大型项目最重要的、不可或缺的部分。 第二章用隐喻来更充分地理解软件开发 > 对软件开......
  • 11.29-task5-代码风格
    代码风格代码风格介绍修饰代码的前提是代码没有bug。。。两幅图中的代码对比,显然后一幅图的代码更加简洁,易懂。也方便之后很长时间后的再理解。缩进tab==4个空格当函数有多参数时换行当一个语句的字符数过长,要换行运算符对齐导入规范导入时要遵循同级文......
  • 聪明办法学python-11.27——11.29笔记打卡
    一、python中条件语句的应用总体代码结构为:ifTrue:dosomethingelse:doother简单描述为“True”为条件,当条件为真的时候,执行“dosomething”,否则就执行“doother”。例如:任务:实现一个函数,返......
  • 【2022.11.29】windows server安装hyper-v
    在已经安装好的winserver2022上打好驱动,这个如果缺的话,可以在网上寻找就好了有个重要的核显驱动在因特尔官网英特尔®显卡–Windows*DCH驱动程序(intel.cn)激活WI......
  • 2022.11.29 vjudge构造、思路题
    WeightingaTree构造切入点:调整总结:图上的题,可以先考虑树上的做法。(尤其是构造题)首先我们要知道这种“点与跟他连着的所有边的关系”什么的题的套路就是找生成树。-......
  • 11.29小记
    会议号:795-775-9627首先是逝去的NOIP。我没想到NOIP2022倒在了我前面。总结就是题整体不难,但是有病。最有病的就是random_shuffle题目顺序。我觉得最优开题顺序......