上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 49 下一页
摘要: 水状压dp.dp(x, s) = max{ dp( x - 1, s - {h} ) } + 奖励(假如拿到的) (h∈s). 时间复杂度O(n * 2^n)-----------------------------------------------------------------------... 阅读全文
posted @ 2015-07-24 21:12 JSZX11556 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 二分答案m, 然后全部边权减掉m, 假如存在负圈, 那么说明有平均值更小的圈存在. 负圈用dfs判断.---------------------------------------------------------------------------#include#define rep(i, n... 阅读全文
posted @ 2015-07-24 16:19 JSZX11556 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 直接DFS, 然后用set维护一下就好了.... O(nlogn)--------------------------------------------------------------------------------#include#define rep(i, n) for(int i =... 阅读全文
posted @ 2015-07-24 15:15 JSZX11556 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 这道题很好想, 离线, 按询问的x排序从小到大, 然后用并查集维护连通性, 用平衡树维护连通块的山的权值, 合并就用启发式合并.时间复杂度的话, 排序是O(mlogm + qlogq), 启发式合并是O(nlog²n), 询问是O(qlogn).---------------------------... 阅读全文
posted @ 2015-07-23 23:22 JSZX11556 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 对于每个点都跑最短路, 然后我们得到了个DAG, 在这DAG上更新每条边的答案.考虑e(u, v)∈DAG对答案的贡献: 假设从S到u得路径数为A[u], 从v出发到达任意点的路径数为B[v], 那么e(u, v)的答案可以加上A[u] * B[v](显然). A可以按拓扑序递推得到, B可以通过记... 阅读全文
posted @ 2015-07-23 22:01 JSZX11556 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 每一连通块砸开一个就可以拿到所有的钱, 所以用并查集求连通块数-------------------------------------------------------------------#include#define rep(i, n) for(int i = 0; i > n; ans ... 阅读全文
posted @ 2015-07-23 13:08 JSZX11556 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 枚举每个长度为k的区间, 然后用平衡树找中位数进行判断, 时间复杂度O(nlogn).早上起来精神状态不太好...连平衡树都不太会写了...果断去看了会儿番然后就A了哈哈哈----------------------------------------------------------------... 阅读全文
posted @ 2015-07-23 12:29 JSZX11556 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 一开始写了个RMQ然后就T了...好吧正解是单调队列, 维护两个单调队列...--------------------------------------------------------------------------------#include#define rep(i, n) for(i... 阅读全文
posted @ 2015-07-23 00:17 JSZX11556 阅读(298) 评论(0) 推荐(0) 编辑
摘要: dp(x, p) 表示序列中第x个数, 上一个数是p构成的等差数列的最长. 转移时从[1, x)中枚举p = seq[] 就行了.时间复杂度O(n²logn)-----------------------------------------------------------------------... 阅读全文
posted @ 2015-07-22 21:39 JSZX11556 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 序列最大长度2w * 5 = 10w, O(n²)的LCS会T..LCS 只有当a[i] == b[j]时, 才能更新答案, 我们可以记录n个数在第一个序列中出现的5个位置, 然后从左往右扫第二个序列时将第一个序列对应位置的值更新, 用树状数组维护. 时间复杂度O(nlogn)-----------... 阅读全文
posted @ 2015-07-22 18:58 JSZX11556 阅读(274) 评论(2) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 49 下一页