赞
踩
目录
6029 射箭比赛中的最大得分(dfs、零一背包问题求解具体方案)
记忆化搜索
dp本质上是暴力枚举的优化,一个状态表示的其实是一类方案方案的集合,核心是状态表示和状态计算,状态表示一般是结合题目给出的变量和需要求解的是什么确定需要声明多少维的数组,状态计算一般是找最后一个不同点。
4319 合适数对(数论--算数基本定理,线性筛求解最小质数)
欧拉函数
组合计数问题
1952 金发姑娘和 N 头牛(差分 + 离散化--两种离散化方式)
对于k路归并的模型其实考察的还是比较隐晦的,需要一步步分析其中的过程,最终发现有一个特点是需要总共n个有序序列中找到前k大或者前k小的值。
1660 社交距离 II(贪心 + 双指针求解连续相等的区间)
找规律有一个比较牛的网站,这个网站可以输入对应的数字可以得到对应的通项公式:OEIS
1776 牛的基因组学(判断两个集合是否存在交集--哈希表)
1660 社交距离 II(贪心 + 双指针求解连续相等的区间)
离散化一般有很多种的实现方式,常见的有两种:① map来实现(哈希表)② 手写离散化
1952 金发姑娘和 N 头牛(差分 + 离散化--两种离散化方式)
找到左/右边第一个比当前位置小/大的元素或者位置
线段树一般能够处理区间单点修改,区间修改,区间查询等与区间相关的问题,一般如果只是单点修改那么不需要使用懒标记,如果是区间修改一般需要懒标记。注意有的线段树的题目是不包含区间右端点,此时需要处理一下,类似于1750题。
3805 环形数组(线段树-c++-java-python)
5 最长回文子串(区间 dp)
一般数据范围在10 ^ 5左右的求解最值的问题可以考虑能否使用二分来解决,二分的难点在于如何找到一个题目中的一个性质使得枚举的答案具有二段性,而且题目能用二分来解决的充要条件是枚举的答案具有两段性,可以将答案区间分为两部分,单调性是二段性的一个特例,所有很多时候时候可以根据单调性进行二分,但是有的题目没有单调性但是是可以使用二分来解决的。
树状数组一般维护的是区间的单点修改与区间查询的相关问题,一般可以求解比左边大/小的相关问题。
背包问题的特点是"有限制的选择问题"
6029 射箭比赛中的最大得分(dfs、零一背包问题求解具体方案)
拓扑排序用在有向无环图中,可以判断拓扑排序是否存在,求解拓扑序列
4196 最短路径(堆优化版的dijkstra算法、spfa算法模板)
2203 得到要求路径的最小带权子图(堆优化版的dijkstra算法)
最近公共祖先主要用来求解树种任意两点之间的最短距离,而求解树中任意两点的最长路径则需要使用树形dp来解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。