摘要: //想到哪说到那吧,大不了以后再补 阅读全文
posted @ 2018-05-17 20:22 _ZZH 阅读(239) 评论(3) 推荐(0) 编辑
摘要: 二分查找: 不再细说,就是在单调的一段区间查找一个数(或比它大(小))的数。 在STL中也有lower_bound,upper_bound两函数可用。 二分查找应用广泛,尤其配合DP中的数据处理上效率极高。 二分答案: 在求解一个形如:最大(小)值最小(大)的问题。显然是从可行解中寻找最优解的过程, 阅读全文
posted @ 2018-08-04 15:30 _ZZH 阅读(968) 评论(0) 推荐(0) 编辑
摘要: 一、概念 差分约束系统(system of difference constraints),是求解关于一组变数的特殊不等式组之方法。如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),则称其为差分约束系统(system of dif 阅读全文
posted @ 2018-07-25 21:32 _ZZH 阅读(162) 评论(0) 推荐(0) 编辑
摘要: [SCOI2005]互不侵犯 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。 国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。 输入格式: 只有一行,包含两个数n,m ( 1 <=n <=9, 0 <= m<= N * N) 输出格式: 所得的 阅读全文
posted @ 2018-06-25 10:58 _ZZH 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 传送门 首先考虑的是二叉搜索树,每次查找当前排名(i+1)/2的数。但是对于某些数据,其递归层数过多,会导致爆栈。 那么显然可以用Treap或Splay。 这里考虑线段树: 由于线段树是一种平衡树,所以一定保证能跑出来。 对于线段树,我们基于二叉搜索树的查找方法并介于线段树平衡的性质求解。 对于线段 阅读全文
posted @ 2018-06-14 08:10 _ZZH 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 传送门 我们考虑将第n只小猪塞进m个房子里(记做f[n][m]): 显然答案分为两部分: 第一部分: 将这只猪扔到一个新房间,共有方案数:f[n-1][m-1] 第二部分: 将这只猪扔进之前的房间,乘法原理知共有方案数:m*f[n-1][m] 综上:有状态转移方程:f[n][m]=f[n-1][m- 阅读全文
posted @ 2018-06-10 15:57 _ZZH 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 二分图的概念 二分图又称作二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 就长这个样。 最大匹配与增广路的概 阅读全文
posted @ 2018-05-15 18:32 _ZZH 阅读(715) 评论(0) 推荐(0) 编辑
摘要: Aho-Corasick automaton,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法。 解决什么问题呢? KMP是给你一个模式串和一个文本串,要求求出模式串的匹配位置。 而AC自动机是给你一个文本串和一堆模式串,问你能匹配上多少模式串。 容易想到我们可以在Trie上跑KMP,结合二 阅读全文
posted @ 2018-05-10 20:38 _ZZH 阅读(506) 评论(0) 推荐(1) 编辑
摘要: 传送门 很显然,每个点的答案是它所有前驱节点的答案加1,即f[i]=max(f[i],f[j]+1); 考虑空间复杂度用邻接表存图,在拓扑排序同时DP就好了 阅读全文
posted @ 2018-05-07 21:55 _ZZH 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 传送门 f[i]表示i~n的最长空闲时间; 如果当前无任务就休息一秒(f[i]=f[i+1]+1); 否则f[i]=max(f[i],f[i+当前工作时间]); 用结构体来记录,我们对于每一个时刻开一个数组来存以此时刻为起始点的所有任务,下标0来表示数组中的元素个数,便于遍历: 阅读全文
posted @ 2018-05-07 21:53 _ZZH 阅读(185) 评论(0) 推荐(0) 编辑