上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页
摘要: 对于第一问,直接求最大流。 对于第二问,建源点s和汇点t,s连1容量为INF,费用为0的边,n连t容量为最大流+k,费用为0的边。这样就把最大流限制为最多增加k了。 限制需要求扩充的最小费用,原图的边多连一条容量为INF,费用为增容费用K的边。跑一遍费用流即是答案。 # include <cstdi 阅读全文
posted @ 2017-03-28 22:06 free-loop 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 将第i个用户和他需要的基站连边,转化成求二分图的最大权闭合子图。 答案=正权点之和-最小割。 # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # in 阅读全文
posted @ 2017-03-28 16:00 free-loop 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一颗标号为1-n的树,求每个节点的子树节点的标号有多少小于该节点的标号。 此题DFS序+主席树过不了,内存太小。。。 看到子树很容易想到树的DFS序,把树转一下DFS序就是求n个区间,每个区间的数字小于k的数目的问题了。 显然可以用主席树,但是内存还是太蛋疼。。。 如果发现这个序列是一个全 阅读全文
posted @ 2017-03-28 15:41 free-loop 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 对于该题,离线的做法是树状数组或者线段树。 如果强制在线的话,可以用主席树做到O(mlogn)。 考虑到这样一个性质,对于询问[l,r]出现的数字种数。其答案就是to[i]>r的数字数。 其中to[i]表示的是第i个数的下一个相同的数出现的下标,没有则=n+1. 很幸运这个性质是满足区间减法的,也就 阅读全文
posted @ 2017-03-28 14:51 free-loop 阅读(925) 评论(0) 推荐(2) 编辑
摘要: 考试的时候没有做出来。。。 想到了答案一定是一段连续的区间,一直在纠结BFS判断最后的可行1数。 原来直接模拟一遍就可以算出来最后的端点。。。 剩下的就是组合数取模了,用逆元就行了。。。 # include <cstdio> # include <cstring> # include <cstdli 阅读全文
posted @ 2017-03-27 22:45 free-loop 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 把每个点拆成两个点,分别表示黑洞和白洞,然后按题意模拟加边跑最短路即可。 # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <que 阅读全文
posted @ 2017-03-27 21:43 free-loop 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 考虑DP,令dp[i][j][k]当前在第i个星球,用了j次维修,k次开采后所获得的最大价值。复杂度为O(n^3).超时 如果我们发现,对于初始时能力值为w所能产生的最大价值y,初始时能力值为1所能产生的最大价值x,显然会有y=w*x。 也就是说能力值的变化不会对单位能力值所能产生的最大价值发生变化 阅读全文
posted @ 2017-03-27 19:09 free-loop 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 这道题的DP是很好想的,令dp[i][j]表示第i个位置摆第j种妹子的方法数,j为0表示不摆妹子的方法数。 dp[i][j]=sigma(dp[i-1][k])(s[j][k]!='1').容易看出这是个递推式,于是可以用矩阵快速幂加速DP转移。 复杂度O(m^3*logn). # include 阅读全文
posted @ 2017-03-27 18:36 free-loop 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 实在是太弱了。。。。 考虑离线,从mex[l,r]向mex[l,r+1]转移,显然是没啥东西可以记录的。。。 从mex[l,r]向mex[l+1,r]转移,记x=mex[l,r],如果[l+1,r]不出现a[l]的话,那么mex[l+1,r]=min(mex[l,r],a[l]). 有了这个性质的话 阅读全文
posted @ 2017-03-26 23:07 free-loop 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 考虑DP。 如果把转移看出当前位填什么数的话,这样是有后效性的。 如果考虑当前的序列是将1至n依次插入序列中的话。 考虑将i插入1到i-1的序列中,如果插入到<号中或者首部,那么最后就会多出一个大于号。 如果插入到>号中或者尾部,那么最后就会多出一个小于号。 所以定义状态dp[i][j]表示1到i组 阅读全文
posted @ 2017-03-26 17:24 free-loop 阅读(126) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页