摘要: 考试的时候没有做出来。。。 想到了答案一定是一段连续的区间,一直在纠结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 阅读(204) 评论(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 阅读(193) 评论(0) 推荐(0) 编辑