上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 21 下一页
摘要: 没有食人鱼不是裸题吗,用一个向量表示从s到1..N的距离,然后不停乘邻接矩阵行了,当然快速幂 有食人鱼,发现食人鱼最多十二个邻接矩阵一循环,处理出12个作为1个然后快速幂行了 怎么处理呢? 假设食人鱼在j时刻到达x这个点,那么j时刻的邻接矩阵x这一列全是0,因为他要求下一个矩阵的贡献上不能有x这一列 阅读全文
posted @ 2017-04-03 15:13 free-loop 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 考虑从最后的队形开始依次还原最初的队形。 对于当前的队形,要么选最左边的,要么选最右边的。 如果选了左边的,那么下次选择的一定是大于它的。右边的同理。 所以定义dp[mark][l][r]为区间[l,r]的选择状态为mark的方法数。 然后记忆化搜索一下就可以了。 # include <cstdio 阅读全文
posted @ 2017-03-30 21:11 free-loop 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 答案是具有单调性的。 因为最近的两个部落的距离为mid,所以要是有两个野人的距离<mid,则他们一定是一个部落的。 用并查集维护各联通块,如果最后的联通块个数>=k,那么mid还可以再小点。如果<k,mid还可以再大点。 二分搞一搞就行了。 # include <cstdio> # include 阅读全文
posted @ 2017-03-30 18:24 free-loop 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 很水的DP。 因为每一个餐车的加入只需要知道当前矿洞的前两个餐车种类就行了。而餐车一共就三种。 所以令dp[i][Sa][Sb]表示前i辆餐车送餐完毕后第一个矿洞的前两个餐车种类为Sa,第二个矿洞的前两个餐车种类为Sb的最大产矿量。 滚动数组优化一下,然后搞一搞就行了。 # include <cst 阅读全文
posted @ 2017-03-30 17:55 free-loop 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一张无向图,每条路的长度都是1,没有自环,可能有重边,给定起点与终点,求从起点走t步到达终点的方案数。 每一步走的时候要求不能走上一条刚刚走的路。 解析: 显然需要搞出个矩阵之后矩乘。 然而这题的要求就很烦,要不然就是SB题了2333. 但是我们可以换一个想法来做。 题目要求不走上一条来 阅读全文
posted @ 2017-03-30 16:34 free-loop 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 实际上把数组排序一遍加入链表中,再记录好数组原来的数在链表中的位置。我们只需要维护链表的删除操作就可以了。 # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vecto 阅读全文
posted @ 2017-03-29 16:05 free-loop 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 考虑莫队算法,对于区间减小的情况,可以O(1)解决。对于区间增加的情况,可能需要O(n)解决。好在数据不卡莫队。 1200ms过了。 离线+线段树 760ms过了。 # include <cstdio> # include <cstring> # include <cstdlib> # includ 阅读全文
posted @ 2017-03-29 14:27 free-loop 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 莫队算法如果我们已知[l,r]的答案,能在O(1)时间得到[l+1,r]的答案以及[l,r-1]的答案,即可使用莫队算法。时间复杂度为O(n^1.5)。如果只能在logn的时间移动区间,则时间复杂度是O(n^1.5*log n)。其实就是找一个数据结构支持插入、删除时维护当前答案。 这道题的话我们很 阅读全文
posted @ 2017-03-29 13:44 free-loop 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 1A啊,激动。 首先,不修改的情况下可以直接用主席树搞,修改的话,直接用主席树搞一次修改的情况下复杂度是O(nlogn)的。 就像你要求区间和一样,用前缀和查询是O(1),修改是O(n),只不过主席树是前缀和套权值线段树,每个操作乘个logn。 如果用树状数组来维护区间和,查询是O(logn),修改 阅读全文
posted @ 2017-03-29 13:27 free-loop 阅读(806) 评论(0) 推荐(1) 编辑
摘要: 此题的二分图匹配做法很容易想,就是把属性当做s集,武器当做t集,如果该武器拥有该武器则连一条边。 那么答案就是求该二分图的最大前i个匹配。将匈牙利算法改一改,当前找不到增广路就break。 但是过这个题需要常数优化,不能每次都fillchar一遍used数组。可以用队列将使用的used点加入,然后需 阅读全文
posted @ 2017-03-28 23:06 free-loop 阅读(120) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 21 下一页