摘要: 题意:有N个人M个房间,初始时所有人都在1号房间,维护:1、让某个人去某个房间 2、假如[l,r]中所有的人还未一起统计过,Ans+=人数。输出Ans 题解: 集合HASH get 根据异或的性质,a^x^x=a,因此一个集合的HASH值就是其所有元素的异或起来的值 接下来就是STL大法好 将每个房 阅读全文
posted @ 2017-02-28 23:44 WDZRMPCBIT 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题意:给定a b c d n m,fi,j满足f1,1=1 fi,j=afi,j-1+b fi,1=cfi-1,m+d,求fn,m%P 题解: a=1且c=1时\[{f_{n,m}} = 1 + b(m - 1)n + d(n - 1)\]否则\[\left( {\begin{array}{*{20 阅读全文
posted @ 2017-02-28 23:41 WDZRMPCBIT 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一张图,求:1、最大流 2、最大流方案中,流量最大的一条边 题解: 第一问裸题 第二问显然Bob要把所有的费用加在流量最大的边上,因此我们二分最长边,每条边的流量改为min{二分出的最大流量,当前边的流量},跑最大流检验。 注意可以是实数流量,比如说: <1,2,3> <3,2,3> <2 阅读全文
posted @ 2017-02-28 23:32 WDZRMPCBIT 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题意:有N个人,每个人有一个初始想法(0/1)和ki个朋友,安排每个人的最终想法,使得|违心的人数+不同意见的朋友的对数|最小 题解: S向每个0连流量为1的边,表示违心;同理每个1向T连流量为1的边。如果两人是朋友,连一条流量为1的边,表示可以对立。 然后网络流/最小割走起。 #include < 阅读全文
posted @ 2017-02-28 23:29 WDZRMPCBIT 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个序列,维护:1、插入一个元素 2、求相邻两个元素中,差值绝对值的最小值 3、求序列排序后相邻两个元素中,差值绝对值的最小值 题解: MIN_GAP:如果我们把数看成一组一组,每次插入数字都在一组的最后插入,那么答案只有可能在组内和组间两个位置产生,定义l[i]为一组数中最左边的数,r[ 阅读全文
posted @ 2017-02-28 23:26 WDZRMPCBIT 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题意:Xn+1=(aXn+c)%M,求XN%G 题解:矩阵乘法裸题 #include <cstdio> #include <cstring> #include <cstdlib> #include <climits> #include <iostream> #include <algorithm> 阅读全文
posted @ 2017-02-28 23:23 WDZRMPCBIT 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一颗字符树,求树中路径所构成的不同的字符串的数量,其中AB和BA视作不同的字符串 题解: 题目里有这样一句话:太阳花田的结构比较特殊,只与一个空地相邻的空地数量不超过20个。 一共有10W个点,却只有20个叶子……因此树上所有的字串就是以叶子为起点搜索出的所有字串,丽洁姐真的好善良啊- - 阅读全文
posted @ 2017-02-28 23:20 WDZRMPCBIT 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题意:初始时给定一个空串,在其后不断加字符,求每次加入后不同子串的数量 题解: 当时拿到这个题一眼看出用后缀数组啥的,然而我并不会QAQ……不耸,不会后缀数据结构我们会HASH是不是,于是用HASH水了30分,能进R2真是命大2333 讲题的时候标算用的后缀数组,不过看他写了半个黑板就感觉好麻烦。Y 阅读全文
posted @ 2017-02-28 23:18 WDZRMPCBIT 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个字符串,维护:1、在当前字符串后面插入一个字符串 2、询问一个字符串在当前字符串中出现的次数。强制在线 题解:维护自动机,一个字符插入之后其祖先的出现次数全部++,这个可以拿LCT或者暴力来维护,链上修改单点查询。 #include <cstdio> #include <cstring 阅读全文
posted @ 2017-02-28 23:15 WDZRMPCBIT 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题意:求一个字符串的第K小字串,T=0表示不同位置相同的子串算作一个,T=1算作多个 题意: 建出SAM来跑第K子串,由于一个点所代表的子串在原串出现次数为其子树叶子结点的数量,因而有: T==1,每个点的|right|=1 T==2,每个点的|right|=子树叶子结点数 BFS跑出所有子串出现的 阅读全文
posted @ 2017-02-28 23:13 WDZRMPCBIT 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一张无向图,有K个人,每一时刻K个人可以同时走(也可以停在一个节点),在到达i之前必须先到达i-1,求从0到N,K个人走的最小距离和(只需一个人到达即可) 题解: 用Floyd跑出任意两个城市i j间的最短路,更新的前提是k<j(要到达城市j必须先到达1->j-1) 将每个城市拆成两个点A 阅读全文
posted @ 2017-02-28 23:10 WDZRMPCBIT 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题意:有n类产品,其中第i类产品共需要Ci件。有m名员工,员工能够制造的产品种类有所区,一件产品必须完整地由一名员工制造,对于员工i,他的愤怒值与产品数量之间的函数是一个Si+1段的分段函数。当他制造第1~Ti,1件产品时,每件产品会使他的愤怒值增加Wi,1,当他制造第Ti,1+1~Ti,2件产品时 阅读全文
posted @ 2017-02-28 23:06 WDZRMPCBIT 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一张有向图,求一个路径集合,集合中的路径满足:1、起点为1,终点出度为0 2、集合中的路径覆盖了所有的点 3、在满足前两个条件的基础上,路径权值和最小 题解: 显然是个带下界的有源费用流。按照如下方式建模,对于一条边权为w的边(u,v)和任意一个点x x向T连容量为k费用为0的边,表示其后 阅读全文
posted @ 2017-02-28 23:02 WDZRMPCBIT 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题意:有N种菜,M位厨师,每位厨师做每种菜的时间不同。有K个人,每个人点ki个菜,求最小等待时间。 题解: 和BZOJ1070一个题,不过多了一个N,因此考虑优化。 显然决策倒数第K个菜的前提是倒数第K-1个菜已经决定完成,因此SPFA每搜出一条路径,就在这个厨师这里加边。说白了就是动点。 #inc 阅读全文
posted @ 2017-02-28 22:58 WDZRMPCBIT 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题意:给定N辆车和M个人,每个人修每辆车的时间不同,安排修理顺序使得修理这N辆车时间总和最小 题解: 将每个工作人员拆点,某个车b向ai连边表示工作人员a倒数第i个修理该车,显然其对答案的贡献(该边费用)就是w[b][a]*i(其后所有等待的车都要受其影响,而之前的车都不会)。 构图两排点,左边是车 阅读全文
posted @ 2017-02-28 22:55 WDZRMPCBIT 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一张有向图,求1到N:1、最多有多少条不相交的路径 2、在第一问的基础上,求所有路径的最小距离和 题解:拆点之后费用流裸题 #include <queue> #include <cstdio> #include <cstring> #include <cstdlib> #include < 阅读全文
posted @ 2017-02-28 22:51 WDZRMPCBIT 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题意:一个N M的矩形区域。格子如果是'.',那么表示这是一块空地;如果是'X',那么表示这是一面墙,如果是'D',那么表示这是一扇门,人们可以从这儿撤出房间。已知门一定在房间的边界上,并且边界上不会有空地。每块空地上都有一个人,在疏散的时候,每一秒钟每个人都可以向上下左右四个方向移动一格,当然他也 阅读全文
posted @ 2017-02-28 22:47 WDZRMPCBIT 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题意:求一张图的最大独立点集 题解:先用Floyd把每个点是否连通跑出来,然后拆点做二分图,左边一列,右边一列,如果u v连通,则将左边的u和右边的v相连,由于需要求一个最大的点集使得其中的任意两个点均不连通,所以跑最大独立集=总点数-最大匹配。 #include <queue> #include 阅读全文
posted @ 2017-02-28 22:43 WDZRMPCBIT 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题意:求1到N的所有最短路方案上的最大流,阈值在每个点上 题解:呵呵哒 #include <queue> #include <vector> #include <functional> #include <cstdio> #include <cstring> #include <cstdlib> # 阅读全文
posted @ 2017-02-28 22:41 WDZRMPCBIT 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题意:有三种人:1、该校回家生 2、该校不回家生 3、非该校住宿生。给出人的认识关系,假若a认识b,则b(a)可以睡在a(b)的床上,只有该校的学生有床,回家生不占床位,求是否能让所有留宿的人都有床睡 题解:建二分图,左边是宿舍右边是学生。从S向需要宿舍的学生连边,从能提供宿舍的位置向T连边,如果某 阅读全文
posted @ 2017-02-28 22:37 WDZRMPCBIT 阅读(107) 评论(0) 推荐(0) 编辑