枚举(前缀和/差分、尺取、状压)、贪心
作者:互联网
枚举(前缀和/差分、尺取、状压)、贪心
邓丝雨 \(2021.1.11\)
\(zhanglichen\ 2021.2.19\)
什么是算法?
先来一道题:NC16669
给出一个序列,对它去重并排序。
时间复杂度和空间复杂度
略。
枚举
例1:最大正方形
在一个\(n*n(n<=100)\)的矩阵中求一个最大的正方形使得该正方形的四个顶点都是由字符'#'构成。设计算法求解。
例2:NC16438回文日期
在两个日期之间有多少个日期是回文日期。
每一年的回文日期最多只有1个,以此可以\(O(n)\)枚举。
前缀和
例3:给定长度为\(n\)的整数序列\(a\),找到一组\(a_i\)和\(a_j\),(i<j),使得\(|a_i-a_j|\)最大,设计算法求解
开一个数组记录后缀最大最小值,即可\(O(n)\)求解。
例4:数列求和问题
给出一个数列,\(q\)次询问,每次询问区间和。
前缀和求解。时间复杂度\(O(n)\)。
差分
例5:数列修改问题
给出一个数列,\(m\)次修改,每次对一段区间加上一个数,最后输出修改后的序列。
差分求解。时间复杂度\(O(n)\)。
二维前缀和
例6:[HNOI2003]激光炸弹
尺取
例7:POJ3061 Subsequence
给定长度为\(n\)的正整数序列以及整数\(S\),求解总和不小于\(S\)的连续子串的最小值。
思路:前缀和+二分 or 尺取Two Pointer
例8:NC18386 字符串
DP
例9:NC20241 [SCOI2005]扫雷
状压
例10:NC106350 Flip Game
贪心
例11:排队接水
有\(n\)个人在接水,每个人需要花费\(t_i\)时间。
请你找一个排队顺序,使得平均等待时间最少。
例12:NC16783 拼数
例13:NC16561国王的游戏(高精度)
例14:NC25043 Protecting the Flower
标签:前缀,复杂度,状压,差分,枚举,尺取,数列 来源: https://www.cnblogs.com/zhanglichen/p/14418182.html