上一页 1 2 3 4 5 6 7 ··· 18 下一页
摘要: "题目链接" Solution 状压 $dp$ . $f[i][j][k]$ 代表前 $i$ 列中 , 已经安置 $j$ 位国王,且最后一位状态为 $k$ . 然后就可以很轻松的转移了... 记忆化搜索还是不够啊... 只能会正向 $dp$ . Code cpp include define ll 阅读全文
posted @ 2018-10-15 21:41 Kevin_naticl 阅读(135) 评论(0) 推荐(0) 编辑
摘要: "题目链接" Solution 水水的套路题。 可以考虑到一个环内的点是可以都到达的,所以 $tajan$ 求出一个 $DAG$ 。 然后 $DAG$ 上的点权值就是 $scc$ 的大小。 对于那条可以反的边,直接建两层图就好了。 最后跑最长路,第一个节点的 $scc$ 在第二张图上的对应节点的答案 阅读全文
posted @ 2018-10-14 20:21 Kevin_naticl 阅读(191) 评论(0) 推荐(0) 编辑
摘要: "题目链接" Solution 一个简单的 或 线段树.竟然坑了我一个小时... 因为颜色很小,所以把状态压起来. 然后每个节点上的数值代表当前颜色状态. 然后节点合并很简单,直接或起来. 需要注意一下的地方是修改时的 $lazy$ ,要完全覆盖,这里不能或. Code cpp include de 阅读全文
posted @ 2018-10-11 22:01 Kevin_naticl 阅读(313) 评论(0) 推荐(0) 编辑
摘要: "题目链接" Solution 树上差分+线段树合并. 在每个节点上维护一棵权值线段树. 然后如果需要修改 $x,y$ 两点,则在 $x$ 处和 $y$ 处分别加上 $1$ 的权值. 然后在 $lca(x,y)$ 以及 $fa[lca(x,y)]$ 处减掉 $1$ . 最后面 $dfs$ 从下往上更 阅读全文
posted @ 2018-10-11 16:29 Kevin_naticl 阅读(249) 评论(0) 推荐(0) 编辑
摘要: "题目链接" Solution 可以考虑到总方案即为 $C_{nm}^k$ . 考虑到要求的是边缘都必须至少有 $1$ ,所以考虑不合法的. 第一行和最后一行没有的方案即为 $C_{(n 1)m}^k$ 第一列和最后一列没有的方案即为 $C_{(m 1)n}^k$ 然后考虑将四边状态压起来,然后可以 阅读全文
posted @ 2018-10-10 20:23 Kevin_naticl 阅读(117) 评论(0) 推荐(0) 编辑
摘要: "题目链接" Solution 可以考虑 $dp$ ,但是很显然 $(n^2)$ 降不下来. 然后考虑贪心,首先,绝对的正确的是,在同等的情况下,给后面的留更多的时间. 首先按照 $T_2$ 排序. 然后我们维护一个大根堆 每修理一栋建筑 我们就把这栋建筑的T1值加入堆 若当前无法修理 我们判断堆顶 阅读全文
posted @ 2018-10-09 20:12 Kevin_naticl 阅读(160) 评论(0) 推荐(0) 编辑
摘要: "题目链接" Solution 线段树. 观察题目可以得到一个小 $trick$ : 对于任意一个节点 $i$ ,那么和它颜色相同的上一个节点 $pre[i]$,肯定不会放在一个区间. 于是考虑对于每一个节点计算它可以献出贡献的区间. 先 $O(n)$ 扫出每一个点的 $pre$ . 然后从左往右, 阅读全文
posted @ 2018-10-04 20:34 Kevin_naticl 阅读(239) 评论(0) 推荐(0) 编辑
摘要: "题目链接" Solution 矩阵优化 $dp$. 题中给出的式子的意思就是: 求 nk 个物品中选出 mod k 为 r 的个数的物品的方案数. 考虑朴素 $dp$ ,定义状态 $f[i][j]$ 代表前 $i$ 个物品选择 $mod~k$ 为 $j$ 的方案数. 那么转移方程也很简单 : $$ 阅读全文
posted @ 2018-10-04 20:24 Kevin_naticl 阅读(245) 评论(0) 推荐(0) 编辑
摘要: "题目链接" Solution 经典的一道线段树题,难点在于如何合并节点. 由于题目要求直线要求不相交,则斜率均大于前面的点即为答案. 所以以斜率为权值. 考虑 线段树 每一个节点维护两个值: $Max$ 代表当前节点中的最大值. $Sum$ 代表对于任意一个节点 $i$ , 其中满足$w_j Ma 阅读全文
posted @ 2018-10-03 00:20 Kevin_naticl 阅读(176) 评论(0) 推荐(0) 编辑
摘要: "题目链接" Solution 完全背包 $dp$ , 同时再加一个数组 $v[i][j]$ 记录当总和为$j$ 时第 $i$ 种物品是否被选. 为保证从小到大和字典序,先将瓶子按大小排序. 然后按部就班转移,要注意讨论字典序问题.转移看代码. Code cpp include define N 3 阅读全文
posted @ 2018-09-28 20:59 Kevin_naticl 阅读(224) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 18 下一页