摘要:
前言:考试挂了很多分,难受…… T1:防御 题意简述:给一条长度为$n$的序列,第$i$个数的值为$a[i]$。现让你将序列分成$m$段,且让和最小的一段尽可能得大。求这个最大值。 题意很明显,最小值最大。不难想到二分答案,为节约时间我们在$(minn,sum)$这个区间内维护。考虑用前缀和维护$s 阅读全文
摘要:
前言:寒假讲过了二分图,但没有学会。现在趁着图论复习再学一遍。 定义:通俗点来讲,如果给你一张图,能将其分为两个点集且点集内部没有连边,那么此图为二分图。 关于二分图有一个性质:二分图一定不存在奇环。证明过程如下: 二分图的判定:我们采用染色法。 bfs图,假设把1个点标记成1,那么与它相邻的点都标 阅读全文
摘要:
前言:本人是个DP蒟蒻,一直以来都特别害怕DP,终于鼓起勇气做了几道DP题,发现也没想象中的那么难?(又要被DP大神吊打了呜呜呜。 首先,区间DP是什么? 区间DP是一种以区间长度为阶段的DP方法。这种DP的解法较为固定,一般都是先枚举区间长度,再枚举左端点,根据左端点+长度推出右端点,然后枚举中间 阅读全文
摘要:
前言:T3写挂了,有点难受。 T1 中位数 题意简述:给你一段长度为$n$的序列,分别输出$[1,2k-1]$的中位数$(2k-1\leq n)$。 其实正解是用两个堆分别为大根堆和小根堆。但我这里偷了个懒,直接由STL函数upper_bound二分查找插入数字(STL大法好 Code: #incl 阅读全文
摘要:
这两天Tarjan复习完后把题做了做。洛谷题单《图的连通性》已经做得差不多了。大部分是Tarjan的题,所以写一篇小总结。 T1 【模板】 缩点 不多bb。我已经写过关于Tarjan模板的随笔了。传送门 T2 【模板】割点 不多bb。传送门 T3 [USACO03FALL][HAOI2006]受欢迎 阅读全文
摘要:
这次好不容易AK了一次(虽然题有点白给。有的题还是比较考验思路的。 T1 放棋子 给一个n*n的棋盘,有n个棋子。棋盘的副对角线不能放棋子(即$i+j=n+1$的位置)。每行每列只能摆一个棋子。每个棋子都视为是不同的。问有多少种摆法。 $n\leq 1314520$。答案对1e8+7取模。 典型的错 阅读全文
摘要:
给你一个含有$n$个未知数$m$个不等式的不等式组,求满足此不等式组的一组解。 我们拿一个不等式举例:$X_{i}-X_{j}\leq C_{k}$。 这和最短路算法里的松弛操作比较像:dis[to]>=dis[now]+edge[i].dis。所以我们可以将其转化为图:从$j$点到$i$点连一条长 阅读全文
摘要:
前排提示:先学习拓扑排序,再学习Tarjan有奇效。 Tarjan算法一般用于有向图里强连通分量的缩点。 强连通分量:有向图里能够互相到达的点的集合。(大概是这么个意思,自己意会) 因为能够互相到达,所以宏观上我们可以把它们看成一个点,边权也相应的加起来即可。 下面是Tarjan过程的代码解释: 我 阅读全文
摘要:
拓扑排序适用于DAG(有向无环图)。它可以按照一定的遍历顺序将点重新排列,能减少算法的复杂度。 先要记录点的入度,将入度为0的点入列,然后与它相邻的点in[]--。如果已经为0,入列,以此类推。在遍历的同时将点按照遍历的顺序记录下来即可。 代码: while(!q.empty()) { int no 阅读全文
摘要:
此篇笔记是我从自己的洛谷博客上搬运而来。更多的是偏向于做题的总结。 前言:简而言之,并查集是一种数据结构,带有一些限定条件,能够帮助计算机在很大的数据范围里很快得出结果。 此算法可以理解为”父亲“和”儿子“的关系。一个父亲可以有多个儿子,每个儿子只有一个父亲。 初始化:fa[i]=i。每个节点一开始 阅读全文