上一页 1 ··· 17 18 19 20 21
摘要: 关键词:树状数组 二维树状数组C中,X树状数组维护一个Y树状数组,C[x][y]表示点(1,1)至点(x,y)是否被翻转过。先操作X数组,再操作每个X所维护的Y数组。 注意:反转(x1,y1):(x2,y2)时,反转了(x2,y2)的前缀和(x1-1,y1-1)的前缀就行了?不!还要把(x1-1,y 阅读全文
posted @ 2018-02-13 09:47 headboy2002 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 树状数组实际上是个数组,维护一个区间,支持查询区间的前缀和,以及修改单点的值。 定义lowbit(x)=x&(-x),表示将x的二进制数只保留从右往左数的第一个1后的数字。 设树状数组为C,规定C[i]维护区间[i-lowbit(i)+1,i]的数字和。因此,要访问C[i]维护的区间的前一个区间,则 阅读全文
posted @ 2018-02-13 08:49 headboy2002 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 关键词:最小费用最大流 不相交路径 如果两个线段重叠了,那我们则把一个线段放在下一层,另一个线段放在上一层。把流量为1的流看作一条线,一条线把位于同一层的线段(互不重叠)都串了起来。最多有k层,则总流量最多为k。问题变成了:每条线如何串串出的线段的长度总和最大? 构图思路1:同一层每一线 阅读全文
posted @ 2018-02-12 15:23 headboy2002 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 关键词:二分匹配 本题用有上下界的网络流可以解决,但编程复杂度有些高。 每个类需要多少题,就设置多少个类节点。每个题节点向其所属的每一个类节点连一条边。这样就转化成了二分匹配问题。 阅读全文
posted @ 2018-02-12 10:35 headboy2002 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 关键词:线段树 二维线段树维护一个 维护一个X线段的线段树,每个X节点维护一个 维护一个Y线段的线段树。 注意,以下代码没有PushDownX。因为如果要这么做,PushDownX时,由于当前X节点的子节点可能存在标记,而标记不能叠加,导致每次PushDownX时都要把子节点PushDownX一次。 阅读全文
posted @ 2018-02-12 09:32 headboy2002 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 关键字:线段树 可持久化 线段树:当版本(即对应的原序列的区间[1,r])一定时,每个节点的left,right下标为值域,值为其对应的原序列区间[1,r]中元素大小在值域中的元素个数。 可持久化:新版本(对应原序列[1,r])在旧版本(对应原序列[1,r-1])上建立,从树根向树叶构造,在旧版本的 阅读全文
posted @ 2018-02-10 10:56 headboy2002 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 网络流 拆点 上下界 枚举 阅读全文
posted @ 2018-02-09 12:23 headboy2002 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 【一个人走多次变为多个人走一次】 阅读全文
posted @ 2018-02-08 13:44 headboy2002 阅读(111) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21