06 2018 档案

摘要:题意:给定n、m。有n个数,选出若干数加起来对m取模,求最大值 n<=35 如果直接暴力就是235,会T, 这里用到一个思想叫meet-in-the-middle, 就是把数列分成两半分别搜索,就是2n/2,然后为其中一个结果的所有值在另一个结果里找最优值, 这个操作可以用二分查找得到,所以可以用s 阅读全文
posted @ 2018-06-30 09:42 void_f 阅读(144) 评论(0) 推荐(0)
摘要:Code 阅读全文
posted @ 2018-06-27 16:24 void_f 阅读(160) 评论(0) 推荐(0)
摘要:用并查集和左偏树维护士兵的关系 Code 阅读全文
posted @ 2018-06-11 20:03 void_f 阅读(202) 评论(0) 推荐(0)
摘要:首先对于一个节点以及它的子树,它的最优方案显然是子树下选最小的几个 用左偏树维护出每棵子树最优方案的节点,记录答案 然后它的这棵树可以向上转移给父节点,将所有子节点的左偏树合并再维护就是父节点的最优方案 这个过程中维护答案即可 Code 阅读全文
posted @ 2018-06-11 20:00 void_f 阅读(182) 评论(0) 推荐(0)
摘要:用并查集维护猴子们的关系,强壮值用左偏树维护就行了 Code G M T 检测语言 世界语 中文简体 中文繁体 丹麦语 乌克兰语 乌兹别克语 乌尔都语 亚美尼亚语 伊博语 俄语 保加利亚语 僧伽罗语 克罗地亚语 冰岛语 加利西亚语 加泰罗尼亚语 匈牙利语 南非祖鲁语 卡纳达语 印地语 印尼巽他语 印 阅读全文
posted @ 2018-06-11 19:43 void_f 阅读(165) 评论(0) 推荐(0)
摘要:每一行做一个DP,然后整体矩阵做一次DP即可 好惨啊,三目运算符记得要加括号 Code 阅读全文
posted @ 2018-06-04 15:53 void_f 阅读(149) 评论(0) 推荐(0)
摘要:对于一个联通块内,有且只有一个环,即n个点n条边 那么找到那个环,然后任意断一条边,这个联通块就变成一棵树了,然后做树形DP就行了 对于断的边要记录下来DP时特判 Code 阅读全文
posted @ 2018-06-03 19:01 void_f 阅读(136) 评论(0) 推荐(0)
摘要:Code 阅读全文
posted @ 2018-06-03 16:08 void_f 阅读(134) 评论(0) 推荐(0)
摘要:前缀和优化一下DP O(n3)->O(n2) Code 阅读全文
posted @ 2018-06-01 20:18 void_f 阅读(142) 评论(0) 推荐(0)
摘要:如果依赖关系出现环,那么对于一个环里的点,要么都选要么都不选, 所以每个环可以当成一个点,也就是强连通分量 然后就可以构造出一颗树,然后树形背包瞎搞一下就行了 注意要搞一个虚拟节点当根节点 Code 阅读全文
posted @ 2018-06-01 18:41 void_f 阅读(137) 评论(0) 推荐(0)