摘要: 题意:给定一个N个点的零图,M次操作,添加或删除一条边,每一次操作以后,打印用1,2,...N/2条边构成的匹配数。 分析:因为N的范围很小,所以可以把点的枚举状态用二进制表示集合。用一维数组dp[S]表示二进制集合为S的点集的匹配数。 每次加边操作,从大到小遍历集合,dp[S]+=dp[S-u-v 阅读全文
posted @ 2018-07-31 21:22 xiuwenL 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 题意:求[L,R](1<=L<=R<=9e18)区间中所有能被自己数位上的非零数整除的数的个数 分析:丛数据量可以分析出是用数位dp求解,区间个数可以转化为sum(R)-sum(L-1)前缀和相减的形式。如果一个数能被所有位上数的最小公倍数(lcm)整除,便是符合要求的数。 但是直接传递一个数n的话 阅读全文
posted @ 2018-07-31 16:32 xiuwenL 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题意:判断一个有向图中的任意两点u、v,是否可以由其中一个点到达另一个点。 分析:这个问题转化以后就是:将该图强连通缩点后再判断其是否是单向连通的。缩点用Tarjan处理强连通分量。 有一个定理是这样的:一个有向图是单项连通的当且仅当其拓扑排序唯一。那么将这个子问题再转化为其缩点之后的图拓扑排序是否 阅读全文
posted @ 2018-07-31 13:08 xiuwenL 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个序列a[1..n],对于每个长度为m的连续子区间,求出区间的最大值和从左往右扫描该区间最大值的变化次数。 分析:先O(n)处理出整个序列的值。求出每个长度为m的连续区间中的最大值可以用单调队列求出,但同时要维护区间最大值的变化次数,即以区间最左边的元素为最小值的递增序列的长度。如果单纯 阅读全文
posted @ 2018-07-30 20:37 xiuwenL 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意:给N个数M次操作,(1<=N,M<=3e5, 1<=ai<=1e6),1是使[L,R]中的每个元素变成其因子的个数之和;2是求[L,R]区间之和 分析:看上去就很线段树的一题,但是却思考了很久。发现1和2即使对其,也不会改变二者的值。而且一个大于2的数进行多次1操作,也最终会退化到2。 先预处 阅读全文
posted @ 2018-07-29 20:45 xiuwenL 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 题意:求小于等于N且能被自己所有位上数之和整除的数的个数。 分析:裸的数位dp。用一个三位数组dp[i][j][k]记录:第i位,之前数位之和为j,对某个mod余数为k的状态下满足条件的个数。这里mod的值就是小于等于N的数中,所有可能出现的数位之和。所以solve函数中需要对dfs函数做一个循环, 阅读全文
posted @ 2018-07-28 22:59 xiuwenL 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 题意:有N个点M条边的无向图,每个点有给定的ai(1<=ai<=K,K<=200)表示该点拥有的物品编号,保证1-K在N个点全部出现。求每个点收集S个不同的物品所要走过的最短路程(边的长度为1)。 分析:N是1e5,如果直接对每个点搜索肯定超时。发现K的范围很小,而且1-K全部覆盖。那么考虑对所有1 阅读全文
posted @ 2018-07-27 23:14 xiuwenL 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题意:N个人,F种食物,D种饮料,给定每种食物和饮料的量。每个人有自己喜欢的食物和饮料,如果得到自己喜欢的食物和饮料才能得到满足。求最大满足的人数。 分析:如果只是简单地N个人选择F种食物的话可以用二分图匹配来完成,但是该题种一个人要选择两样东西。 采取以下操作建图: 增加源点和汇点,源点与F个食物 阅读全文
posted @ 2018-07-27 13:35 xiuwenL 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题意:有N(1<=N<=1e5)个人要移民到M(1<=M<=10)个星球上,每个人有自己想去的星球,每个星球有最大承载人数。问这N个人能否移民成功。 分析:可以用最大流的思路求解该问题,新建源点和汇点,源点与人间加入弧,流量为他想去的星球之和;星球和汇点间加入弧,流量为其承载数量;人和星球间加入弧, 阅读全文
posted @ 2018-07-27 09:53 xiuwenL 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题意:N个人,M个团体。每个人有属于自己的一些团体编号。将每个人分配到自己属于的团体中,问这个人数最多的团体其人数最小值是多少。 分析:一个一对多的二分图匹配,且是最大值最小化问题。二分图的多重匹配建立在匈牙利算法的基础上,令每个Y部的点可匹配多个点,但是规定其上限,超过上限就要在已有的匹配点中寻找 阅读全文
posted @ 2018-07-26 21:22 xiuwenL 阅读(133) 评论(0) 推荐(0) 编辑