上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 29 下一页
摘要: BZOJ 2753 首先可以按照题目要求的把所有的有向边建出来,然后进去广搜就可以求出第一问的解,然后考虑如何求解第二问,我们把所有搜到的边按照到达的点的高度位第一关键字,边的长度为第二关键字排序之后跑$kruskal$,这样子得到的最小生成树权值就是第二问所求的最大值。 考虑一下这样子为什么正确, 阅读全文
posted @ 2018-10-22 20:15 CzxingcHen 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 初赛成绩出了,和预想的一样,一分都没挂,开心。 大佬的博客 subtask 1 ($n \leq 200$) 因为高位取$0$一定比高位取$1$优,我们考虑按照位从高到低进行检验,设$f_{i, j}$表示前$i$个数划分成$j$段是不是可行,在转移的时候要注意不能让之前计算过的高位从$0$变成$1 阅读全文
posted @ 2018-10-22 18:13 CzxingcHen 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 第一次写线段树优化建边。 根据本题的要求,我们可以建两棵线段树,然后在建$n$个点,然后把第一棵线段树上每一个点$(p, l, r)$(结点编号为$p$, 表示区间是$[l, r]$),连边$\forall i \in [l, r]\ (i, p, 0)$,与之相对,把第二棵线段树上的点$(p, l 阅读全文
posted @ 2018-10-22 15:13 CzxingcHen 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 简单题。 考虑没有修改数字的条件的限制,我们直接用双指针扫描就可以计算出答案了。 然后考虑加入修改数字的条件,只要用单调队列维护出当前两个指针表示的区间中长度为$d$的一段区间的最大值,用总和减掉这个最大值更新答案即可。 时间复杂度$O(n)$。 Code: #include <cstdio> #i 阅读全文
posted @ 2018-10-22 14:11 CzxingcHen 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 一开始看不懂题解,看懂了题解之后觉得还是挺妙的。 好多题解里都提到了HH的项链,但是我觉得关系并不大啊…… 先把所有询问离线下来按照右端点排序,按照询问的要求一个一个加入数字,怎么加入数字,我们设计一颗特别的线段树: 假设当前我们在$[1, r]$中已经加完了数字,那么线段树的叶子结点$l$表示$\ 阅读全文
posted @ 2018-10-22 13:40 CzxingcHen 阅读(272) 评论(3) 推荐(0) 编辑
摘要: 写了好久,感觉自己好菜,唉…… 首先发现这个$g$的取值具有单调性,可以想到二分答案,然后考虑用$dp$来检验,这样子可以写出朴素的转移方程: 设$f_i$表示以$i$结尾的最大价值,那么有$f_i = max(f_j) + val_i$ $(0 < j < i)$ $((dis_i - (d + 阅读全文
posted @ 2018-10-21 20:14 CzxingcHen 阅读(176) 评论(0) 推荐(0) 编辑
摘要: BZOJ 1297 应当是简单题。 发现边权的数量很小,所以我们暴力把一个点拆成$9$个点,然后把$(x, i)$到$(x, i + 1)$连边,代表转移一次之后可以走回来;对于每一条存在的边$(i, j, k)$,把$(i, k)$向$(j, 1)$连边,代表走一条路。然后用这个矩阵乘$T$次即可 阅读全文
posted @ 2018-10-21 08:25 CzxingcHen 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 唔,想到了状压之后就不会了……实在是菜 考虑压两行,设$f_{i, j, k}$表示当前到第$i$行,上一行是$j$状态,前一行是$k$状态的最多能放的炮兵的数量。 发现第一维还可以滚掉,好像可以转移了。 但是,这样子$100 * 1024 * 1024 * 1024$时间炸了……怎么办? 考虑先不 阅读全文
posted @ 2018-10-20 21:13 CzxingcHen 阅读(163) 评论(0) 推荐(0) 编辑
摘要: BZOJ 4012权限题 浙科协的网突然炸了,好慌…… 据说正解是动态点分治,然而我并不会,我选择树链剖分 + 主席树维护。 设$dis_i$表示$i$到$root(1)$的值,那么对于一个询问$u$,答案为$\sum_{i = 1}^{n}dis_i + n * dis_u - 2 * \sum_ 阅读全文
posted @ 2018-10-20 09:09 CzxingcHen 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 树状数组 + dp 设$f_i$表示以$i$为根的子树中的能选取的最大和,$sum_x$表示$\sum_{f_y}$ ($y$是$x$的一个儿子),这样子我们把所有给出的链按照两点的$lca$分组,对于每一个点$x$,$sum_x$显然是一个$f_x$的一个备选答案,而当有树链的$lca$正好是$x 阅读全文
posted @ 2018-10-19 22:26 CzxingcHen 阅读(168) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 29 下一页