文章分类 - acwing
note
    
            
    最优贸易-SPFA+思维
    
            
            
        
摘要:最优贸易 最贸易 思路 	设我们可以以$i$为分界点,分别求经过$[1, i]$的路径的最低价格,和$[i, n]$的最高价格, 相减便可以得到以以$i$为分解点的最短路径,这样遍历所有分解点可以得到答案, 对于上述做法左右两边都是可以任意走的,也可以当天买当天卖, 那么可以用dp来求吗,显然图中
        阅读全文
            
        
            
    道路与航线 Dijkstra+DAG求最短路
    
            
            
        
摘要:道路与航线 题目 道路与航线 思路 	一开始想的是SPFA, 平均情况$O(M)$, 但是最坏是$N \times M$, 提交后超时了。开始思考题目中的边和相关条件 1. 道路**无向**,且为**正权边** 1. 航线**有向**,且可能存在**负权边**,另外航线不存在回路,即为$DAG(有
        阅读全文
            
        
            
    通信线路-二分+双端队列BFS
    
            
            
        
摘要:通信线路-二分+双端队列BFS 题目 通信线路 思路 	理解一下题意,找到一条路径使得,源点到终点的路径中第$k + 1$大的边权最小,也就是下图标注的$(1->2->5)$的路径花费为$4$. 	求最大值最小显然我们可以想到二分答案,那么如何二分那,我们先设一个$x$, 对于$> x$ 的边权
        阅读全文
            
        
            
    双端队列BFS-电路维修
    
            
            
        
摘要:双端队列BFS 	对于图中只存在边权为$0, 1$的边,我们可以考虑双端队列优化Dijkstra, 即我们用一个双端队列来维护Dijkstra中堆的性质,具体做法如下: 	如果当前更新边的边权为$0$,那么我们可以将其插入到队首 	如果边权为$1$我们可以将其插入到队尾 对于上面的做法, 我们
        阅读全文
            
        
            
    蓝桥杯-网络分析-带权并查集
    
            
            
        
摘要:网络分析 题目 网络分析 思路 	一开始考虑每次dfs, 然后进行memset(),复杂度为$O(m \times N \times M)$, 只拿了50分, 看了网上的题解,如果不用带权并查集的话,维护并查集内所有的点,复杂度$O(m \times N)$ 可以拿70分, 下面考虑正解带权并查集
        阅读全文
            
        
            
    Acwing-提高课 图论
    
            
            
        
摘要:Acwing-提高课 图论 单源最短路的建图方式 1129. 热浪 注意无向图的边数为题目数据的2倍,另外链式前向星只有h[] 数组存储的大小是点数,其他是边数, 存储的时候可以不用结构体,用$w$数组存储idx对应的边权 #include <iostream> #include <cstring>
        阅读全文
            
        
            
    线段树复习
    
            
            
        
摘要:线段树复习 	线段树是基于分治思想的二叉树,用来维护区间信息(区间和,区间最值,区间$gcd$等),可以在$nlogn$的时间内执行区间修改和区间查询 。 	线段树的叶子节点存储元素本身,非叶子节点存储区间内的元素统计值。 建树 关于线段树为什么开$4 \times N$大小: 单点修改 $O(
        阅读全文
            
        
            
    树状数组学习
    
            
            
        
摘要:树状数组 | 算法 | 单点修改 | 求前缀和 | | | | | | 前缀和 | $O(1)$ | $O(n)$ | | 树状数组 | $O(logn)$ | $O(logn)$ | 	我们将区间拆分成$[r - lowbit(r) + 1, r]$, 如上图所示,我们用右端点$r$来表示一个区
        阅读全文
            
        
            
    加分二叉树 区间dp
    
            
            
        
摘要:加分二叉树 区间dp 题目 加分二叉树 思路 由于根节点可以任选, 所以我们可以令$f[l][r]$ 表示考虑区间$[l, r]$合并的最优加分二叉树, 那么我们可以从根遍历,则问题转化为区间dp问题 $$ f[l][r] = max(f[l][k - 1] \times f[k + 1][r] +
        阅读全文
            
        
            
    作物杂交 SPFA -- dp
    
            
            
        
摘要:作物杂交 SPFA -- dp 题目 作物杂交 思路 	首先回想一下bellman-ford算法通过$n - 1$次枚举,每次枚举所有的边进行松弛,算法的复杂度为$O(n \times m)$, 我们使用队列进行优化,即每次可能松弛其他点的边一定是上一次被松弛的点, 所以我们可以用一个队列来维护当
        阅读全文
            
        
            
    哈希表学习
    
            
            
        
摘要:哈希表学习 存储结构 模拟散列表 开放寻址法 #include <iostream> #include <cstring> using i64 = long long; const int N = 2000003, null = 0x3f3f3f3f; int h[N]; int find(int 
        阅读全文
            
        
            
    NOIP-2003 传染病控制 暴力-深搜
    
            
            
        
摘要:题目 P1041 [NOIP2003 提高组] 传染病控制 思路 一开始想到的是计算每个节点的儿子数量,然后贪心一边, 但是这样是错误的,下面给出例子证明贪心法是错误的。 	自顶向下错误证明: 	自底向上错误证明:  	说明:由于贪心策略,我们把儿子多的节点先给挂了, 导致我们最后的节点数为
        阅读全文
            
        
            
    砖块,费解的开关 (递推)
    
            
            
        
摘要:题目1 砖块 思路 (递推) 	我们可以通过题目条件,找出来本题的一些性质 每两个相邻砖块至多操作一次 	通过这个性质,我们可以递推的求每个砖块是否被操作,假设砖块变成白色,如果操作第$i$个和第$i + 1$砖块后,不能使第$i$个砖块变为W, 则不进行该操作,因为后续操作无法使该砖块变为W。
        阅读全文
            
        
            
    蒙德里安的梦想
    
            
            
        
摘要:蒙德里安的梦想 蒙德里安的梦想 思路 状态压缩DP 	状态表示: 设$f[i][j]$表示**前$i-1$列已经摆放整齐, 第$i$列的状态为$j$**时的方案数,$j$用十进制来表示二进制数,当$j$的第$k$位为$0$时,表示该列没有方块覆盖,即可以理解为该列没有被$i - 1$列的$1 \t
        阅读全文
            
        
            
    货币系统-计数类背包问题
    
            
            
        
摘要:货币系统-计数类背包问题 问题 532. 货币系统 - AcWing题库 思路 题意: 	对于给定长度为$n$的序列$a$, 对于序列$a$种任意数的线性组合有 	$s = k_1a_1 + k_2a_2 + ..., \space k_i \in Z^+$ 	求另一个序列满足$a$中能用线性
        阅读全文
            
        
            
    二维费用背包问题
    
            
            
        
摘要:二维费用背包问题 	给定$n$个物品,对于每个物品有容量$v_i$, 负收益$w_i$,给定负收益阈值$k$, 最大容量$m$, 求保证负收益最低的情况 下最多能装多少物品。 	该问题对于集合划分同样可以划分成装与不装两个集合,与01背包相同, 我们需要考虑两个状态量, 负收益和容量,对于保证负
        阅读全文
            
        
            
    多重背包复习
    
            
            
        
摘要:多重背包问题 有 $N$种物品和一个容量是 $V$的背包。 第 $i$种物品最多有 $s_i$ 件,每件体积是 $v_i$,价值是 $w_i$。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。 输出最大价值。 滑动窗口优化 $O(n \times v)$ $f[i][j] 
        阅读全文
            
        
            
    单调栈与单调队列复习
    
            
            
        
摘要:单调栈与单调队列复习 单调队列 解决问题 对于给定序列$a$, 求固定长度区间$k$, 关系运算最大或最小的问题. 最朴素的做法是$O(nk)$, 利用单调队列可以将复杂度降为$O(n)$. 思路 以求区间最大为例: 	假设存在一个长度为$k$的队列,从$1 \to n$枚举,若$a_i \ge 
        阅读全文
            
        
            
    1027. 方格取数 - 线性dp
    
            
            
        
摘要:题目 1027. 方格取数 - AcWing题库 思路 	一开始dp了两次,错误,然后又尝试第一次dp后在进行回溯,把第一次最优路径中的点更改为$0$, 然后第二次dp,在把两次和相加,这样是错的。 	这两个子最优结构并不同属一个最优结构,这两个子最优结构只能保证单次最优,然后再单次最优的情况下
        阅读全文
            
        
            
    Acwing-282. 石子合并 区间DP例题
    
            
    
摘要:题目 设有 NN 堆石子排成一排,其编号为 1,2,3,…,N1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这 NN 堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的
        阅读全文
            
        
 
 浙公网安备 33010602011771号
浙公网安备 33010602011771号