[知识点]NOIP动态规划大合集

1、前言

NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解。

2、NOIP2003 加分二叉树

树形DP入门题,根据题意,一个树的加分=左子树*右子树+根节点,由此可以设f[i][j]为子树i到j的加分,则有方程:f[i][j]=max{d[t]+f[i,t-1]*f[t+1,j]} ( t∈[i,j] )

3、NOIP2004 合唱队形

应该是最简单的一道了,枚举队形的最高点,分别向左向右求最长下降子序列,然后取最大值即可。方程略。

4、NOIP2005 过河

相信这道题应该考场上没几个人能够做出来啊。。。做出来了也很难证明。。。实在是令人感到意外。题目本身难度似乎并不高,但是我们注意到数据范围<=10^9,这是连O(n)都难以接受的长度。此时可以考虑到将路径进行一些修改以满足我们的范围要求。首先求出1-10里面任意两个数的最小公倍数,然后取最大值max,可以证明当两石块之间的距离大于max的时候,那么大于它的部分的每一个点都可以通过这两个数的某一种组合跳到,所以当两个石块间的距离大于这个最小公倍数,那么就把它们的距离缩小到这个最小公倍数.

时间: 2024-10-14 07:25:46

[知识点]NOIP动态规划大合集的相关文章

[题解+总结]动态规划大合集II

1.前言 大合集总共14道题,出自江哥之手(这就没什么好戏了),做得让人花枝乱颤.虽说大部分是NOIP难度,也有简单的几道题目,但是还是做的很辛苦,有几道题几乎没思路,下面一道道边看边分析一下. 2.lis 最长上升子序列 唯一一道裸题,但是O(n^2)过不了,临时看了看O(n log n)的二分做法和线段树做法.先来讲讲简单的二分做法,其本质就是在O(n^2)上进行优化,需要证明一个结论.设当前处理数列第k位,存在: (1)a[i]<a[j]<a[k]: (2)i<j<k: (3

史上最全华为路由器交换机配置命令大合集

华为路由器交换机配置命令是大家使用时经常遇到的,顾名思义关于交换机的计算机命令,路由器命令,交换机命令和动静态命令都将在文中提到. [限时免费]年底最强一次云计算大会,看传统.社区.互联网企业如何碰撞? 史上最全华为路由器交换机配置命令大合集,熟练掌握下面的华为路由器交换机配置知识点,你只需花几分钟的时间就能明白华为路由器交换机配置.交换机的配置命令等等. 华为路由器交换机配置命令:计算机命令 PCAlogin:root:使用root用户 password:linux:口令是linux #shu

从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )

从零开始学数据分析,什么程度可以找到工作?( 内附20G.5000分钟数据分析工具教程大合集 ) 我现在在Coursera上面学data science 中的R programming,过去很少接触过统计.计算机这两个学科,现在很想转行做数据.问题如下: 1.Data需要学到什么程度可以找工作?2.初级的数据分析会做哪些工作?3.数据分析有什么小方向吗?4.想要深度做数据分析有怎样的建议? 5.统计的学习应该从哪里下手? 本文将给你以上问题所有答案,文末还有UniCareer为大家独家整理的20

Lucene搜索方式大合集

package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.math.NumberUtils; import org.apache.lucene.document.Document; import or

Android 软件开发与游戏开发1 至 32系列博文大合集

Android 软件开发与游戏开发1 至 32系列博文大合集Android 软件开发与游戏开发1 至 32系列博文大合集 http://www.qdmm.com/BookReader/17958,65822595.aspxhttp://www.qdmm.com/BookReader/17958,65822597.aspxhttp://www.qdmm.com/BookReader/17958,65822598.aspxhttp://www.qdmm.com/BookReader/17958,65

Android软件开发之盘点所有Dialog对话框大合集

对话框大合集 今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧. <ignore_js_op> 1.确定取消对话框 对话框中有2个按钮   通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件.<ignore_js_op> 我们使用AlerDialog 创建对话框 AlertDialog.Builder builder = new AlertDialog.Buil

python字符串操作实方法大合集

python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下: #1.去空格及特殊符号 s.strip().lstrip().rstrip(',') #2.复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' print sStr2 #3.连接字符串 #strcat(sStr1,sStr2) sStr

内容大合集

文顶顶大神 http://www.cnblogs.com/wendingding/p/3805088.html 碎片知识大合集 http://www.cnblogs.com/wujy/p/4571611.html 一个很牛逼的个人空间 http://github.ibireme.com/github/list/ios/ http://www.kancloud.cn/digest/ios-mac-study/84559 [iOS Weekly]专题集合④每周iOS精选推送 http://www.c

【Java并发编程】并发编程大合集

转载自:http://blog.csdn.net/ns_code/article/details/17539599 为了方便各位网友学习以及方便自己复习之用,将Java并发编程系列内容系列内容按照由浅入深的学习顺序总结如下,点击相应的标题即可跳转到对应的文章    [Java并发编程]实现多线程的两种方法    [Java并发编程]线程的中断    [Java并发编程]正确挂起.恢复.终止线程    [Java并发编程]守护线程和线程阻塞    [Java并发编程]Volatile关键字(上)