摘要: 一开始竟然妄想用$n^2$的算法过这题,然而这是不可能的 所以只好写归并排序来求逆序対惹 比如将下面两个区间排序 首先将右区间的$1$取出,放到$r_k$中,此时 1 是比每个$a_i$中的元素都小,也就是说此时$i$的指针指向$a_1$的位置,此刻得到的逆序对的数量为$4$;$r_k$= 1; 以 阅读全文
posted @ 2019-05-30 22:02 hulean 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 二分+DFS 看到这么多大佬写了并查集,BFS的,还没有人写DFS版的,那么肯定是要来水水积分的啦~~毕竟这可是道伪紫题呢~~! 做法楼上楼下也讲得很清楚了吧,详见代码的注释 cpp include using namespace std; bool taofen_boys[510][510];// 阅读全文
posted @ 2019-05-21 21:48 hulean 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 看还没有人发记搜的题解,赶紧来~~水~~发一篇 我们定义 为区间 内最少添加几个括号才能把这个串变成正规括号序列。 考虑四种情况 1. 不存在这种子串,返回 2. 子串长度为 无论是 都是要消耗1的,返回 3. 那么返回的是DP(i+1,j 1) 4. 其他情况,枚举断点,详见代码 至于输出嘛... 阅读全文
posted @ 2019-05-21 21:47 hulean 阅读(274) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-05-17 22:00 hulean 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 一、tarjan求强连通分量 1. 什么是强连通分量? 引用来自度娘的一句话: “有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。 如果有向图G的每两个 阅读全文
posted @ 2019-05-13 12:55 hulean 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 一般问题模型: 在一张图上,有k次机会可以通过一条边而不需要计算权值或权值是一个特殊值,求从起点到终点的最短路。 变形问法: 在一张图上,有k次机会可以逆向行驶,求从起点到终点的最短路或最短路。 这种问题可以用两种方式解决。 第一种思想:动态规划(这里不详细解析,主要是介绍分层图) 第二种思想:分层 阅读全文
posted @ 2019-05-10 14:15 hulean 阅读(1883) 评论(0) 推荐(1) 编辑
摘要: 并查集大难题。 看了题解之后才有思路,调了很久很久才AC,当然要写一篇题解来纪念一下。 先来分析一下这些指令的特点,很容易发现对于每个M指令,只可能一次移动整个队列,并且是把两个队列首尾相接合并成一个队列,不会出现把一个队列分开的情况,因此,我们必须要找到一个可以一次操作合并两个队列的方法。 再来看 阅读全文
posted @ 2019-05-08 21:45 hulean 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 搜索 传参 开始搜索 初始参数 完整代码: cpp include using namespace std; int n,c; int w[60],m[60]; int tot,ans=0x3f3f3f3f; inline int read() { int tot=0; char c=getchar 阅读全文
posted @ 2019-05-08 11:01 hulean 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 树形DP的一道较为基础的模板题 状态 转移 初始 答案 完整代码: cpp include using namespace std; const int N=6000+10; int n,m; int r[N]; bool v[N]; vectorson[N]; int dp[N][2]; inli 阅读全文
posted @ 2019-05-07 21:52 hulean 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 我们讲一下什么是 二维前缀和 ,建立在 一维前缀和 之上,我们要求一个矩阵内一个任意的子矩阵的数的和,我们就可以用二维前缀和,我们还是用DP来预处理,状态和一维前缀和差不多,只不过我们多加了一维, 表示 这个点与 这个点两个点分别为左上角和右下角所组成的矩阵内的数的和,好好想一下状态转移方程, ,怎 阅读全文
posted @ 2019-05-07 12:46 hulean 阅读(7665) 评论(1) 推荐(11) 编辑