摘要:
简单计数(count) 【问题描述】 知名音乐人小 C 准备作一首新曲送给大家,曲子中共有 n 个音 符。音符有m 种,同一种音符重复出现太多次会很单调,对于第i 种, 小 C 不希望它在曲子中的某一段连续出现超过ai 次。小 C 想知道,他 有多少种不同的作曲方案。两种方案不同,当且仅当某个位置上 阅读全文
该文被密码保护。 阅读全文
摘要:
//洛谷P3376 对于最大流是什么,各位可以Baidu一下,简而言之,就是求一个有向图中,从源点(S)到汇点(T)流量(Flow)的最大流通量。 而对于这个方案的求解,我们肯定首先想到的是按照上面这三个原理进行贪心...... 然后一顿贪心以后,发现找的的不一定是最优解,因为,有时。 所以我们引进 阅读全文
摘要:
//洛谷P3368 对于树状数组这个数据结构,维护的无非就是这几个操作: 1.单点修改,区间求和 2.区间修改,单点查询 对于这道题,就是操作2 (对于树状数组的基础与操作1的实现,请见http://www.cnblogs.com/XjzLing/p/7943547.html) 对于这道题,我们要引 阅读全文
摘要:
//洛谷P3374 对于树状数组这个数据结构,维护的无非就是这几个操作: 1.单点修改,区间求和 2.区间修改,单点查询 对于这道题,就是操作1 首先,我们先来了解一下树状数组: 在上图中A数组是原数组,C数组记录了其所有儿子结点的和,如何知道C[i]的父亲的位置呢? 这就要引入lowbit函数了: 阅读全文
摘要:
//洛谷P3367 并查集算法也算是算法中的经典了,它可以用O(logn)的时间支持一张图中集合的合并与查询。 这里,我们首先用一个数组fa[x]来表示以x为编号的祖先的编号(*每一个点的初始祖先为它自身)。 然后就是并查集的重中之重:find()函数!!! find(x)就是查询点x 所在集合的祖 阅读全文
摘要:
//洛谷P3366 (其中所应用的并查集原理请见http://www.cnblogs.com/XjzLing/p/7943363.html) 这里选用Kruscal的方法:先将每一个点用并查集记录它们的祖先,用fa[i]来表示 然后将边按照权重,从小到大排序,这里选用sort的cmp。 然后,从小到 阅读全文
摘要:
//洛谷P1436 (模板) 我们定义映射f(ai)=i,那么两个排列可以转换为(f(a1),f(a2),...,f(an))=(1,2,...,n)和(f(b1),f(b2),...,f(bn)),我们进行这样的转换之后,就把本题转换为求最长上升子序列的长度的题目了。 最长上升子序列存在O(N l 阅读全文