首页 > 其他分享 >蓝桥杯----动态规划训练

蓝桥杯----动态规划训练

时间:2023-06-04 23:44:06浏览次数:47  
标签:---- 结尾 中选 蓝桥 序列 动态 最长 dp 定义

最长上升子序列

   之前我定义的dp是:

  dp[n][i]:表示在前n个数中选,并以数a[i]结尾的最长上升序列

  但是这个状态的转移有点不自然,感觉就想有很多多余的感觉

  if (i<=n-1)

    dp[n][i]=dp[n-1][i]

  if (a[i]>a[j] && j<=n-1)

    dp[n][i]=max(dp[n][i],dp[n-1][j]+1)

 

  最长上升子序列一定会在某个下标处结尾的

  所以我们可以定义dp是:

    dp[i]:表示在前i个数中选,并以a[i]结尾的最长上升序列

    这个定义与我上面的不同的是:删去了多余的一维,想一下

    其实如果以a[i]结尾,那么不就一定是在前i个数中选吗?

    为何还要多此一举定义个n?

  于是这个状态转移的方式是:

    dp[i]=1;

    if (a[i]>a[j]) dp[i]=max(dp[i],dp[j]+1)

  

  除了动态规划这种方法外还有贪心+二分的方法

  但是这个正确性我不知道咋证明,用的感觉很怪,我就现在还不懂

  博客<----

  题目<----

标签:----,结尾,中选,蓝桥,序列,动态,最长,dp,定义
From: https://www.cnblogs.com/cilinmengye/p/17456715.html

相关文章

  • 事件绑定-事件修饰符
    事件修饰符在事件处理函数中调用event.preventDefault()或event.stopPropagation()是非常常见的需求。因此,vue提供了事件修饰符的概念,来辅助程序员更方便的对事件的触发进行控制。常用的5个事件修饰符如下:事件修饰符说明.prevent阻止默认行为(例如:阻止a连接的跳转、阻......
  • python中可以节省内存的机制-生成器
    nums=[1,2,3,4,5,6]squares_it=(n**2forninnums)#squares_it得到一个生成器,仅在调用时动态生成nums的平方squares_lst=[n**2forninnums]#squares_lst一次性计算所有元素并生成一个列表并保存下来所以,当您这样做时:fornins......
  • C++继承
      三类继承方式子类会将父类的所有非静态成员属性继承过来,只不过编译器隐藏了父类的私有属性,子类不可以访问。 1classBase{2public:3inta_;4protected:5intb_;6private:7intc_;8};910classSon:publicBase{11pu......
  • 6.8 数组类库支持
    demo1java.util.Arrays.sort()实现排序classArrayUtil{publicstaticvoidprintArray(inttemp[]){for(intx=0;x<temp.length;x++){System.out.print(temp[x]+",");}}}publicclassHelloWorld{p......
  • PE学习——导出表,加载dll并GetProcAddress获取函数地址的内在原理
    导出表一个可执行程序是由多个PE文件组成,这些PE文件依靠倒入表、导出表进行联系,导出表存储着PE文件提供给其他人使用的函数列表,导入表则存储着PE文件所需要用到的PE文件列表。从PE文件的角度去看,任何PE文件都可以有导入、导出表,从一般情况下来看,EXE文件不会提供导出表,也就是不会......
  • 算法 in Golang:D & C(分而治之)
    算法inGolang:D&C(分而治之)D&C算法(策略)Divide&Conquer属于递归算法的一种其实它更像是一种思路、策略递归递归Recursion基线条件BaseCase递归条件RecursiveCaseD&C的步骤找到一个简单的基线条件(BaseCase)把问题分开处理,直到它变为基线条件例......
  • 计应211第三组网上鲜花销售系统项目设计
    一:三层架构1.Dao层,数据库访问层,访问数据库,对数据进行增删改查。2.Service层,业务逻辑层,处理事务,收款金额,等。3.Web层,表示层,处理数据,保存数据。二:1.用例图2.活动图3.类图 ......
  • 拼图游戏三层架构设计
     ......
  • springboot案列
    当创建多个springboot项目在同一个文件时,注意每一个springboot项目的serverport(端口)要不一样,否则会报错;另外要注意的是:在创建的springboot目录中;其他它文件的目录必须在springboot的项目的内部,否则会找不到指定的内容,报404错误 ......
  • NSSCTF_Round13 web
    flask?jwt?1.信息收集题目提示这里告诉了这题涉及的内容2.开始探索(1)发现有注册,有忘记密码然后这里尝试admin登录,但失败所以直接注册一个用户 (2)注册后登录给出页面,点了拿flag,访问/getFlag路由但是告诉不是admin  然后根据题目信息里的提示应该就需要伪造admin......