08 2018 档案
摘要:HRBUST - 2358 思路:dfs序 + 树状数组 代码:
阅读全文
摘要:E - GukiZ and GukiZiana 思路:分块, 块内二分 代码:
阅读全文
摘要:矩阵 思路: 预处理好前缀和,枚举上边界和下边界,将二维变成一维,用单调队列找满足题意的最小前缀 复杂度,O(r*r*c) 代码:
阅读全文
摘要:D - Table 思路:dp 首先,第i列的个数肯定和第i - n列个数一样,假设[i - n + 1, i - 1] 之间的个数之和为x,那么第i列和第i-n列的个数应该是n - x 那么我们可以用dp求方案数 状态:dp[i][j] 表是到第 i 列为止 填了 j 个的方案数 初始状态: dp
阅读全文
摘要:D - Leha and another game about graph 思路:首先,如果所有点的度数加起来是奇数,且没有-1,那么是不可以的。 其他情况都可以构造,我们先dfs出一个生成树,然后从叶子节点开始往上处理 对于节点u和v,边u -> v,如果d[v]等于1,那么就要选这条边,d[u]
阅读全文
摘要:B - Diverging Directions 思路: 用dfs序+线段树维护子树中距离(从1到u,再从u到1)的最小值 代码:
阅读全文
摘要:思路: 首先,inedible tails 的个数最多为C(18+9,9)个(用隔板法),所以我们暴力出所有的 inedible tails,然后检查一下在[L, R]这段区间是否存在这个inedible tails 检查的时候用了和数位dp差不多的方法,设一个下界和上界,只要之前的既没有达到上界也
阅读全文
摘要:D - Distinctive Character 思路:bfs 使最大的匹配数最小,转换一下,就是使最小的不匹配数最大,用bfs找最大的距离 代码:
阅读全文
摘要:思路: 如果所有的图形都是三角形,那么答案是2*n+1 否则轮廓肯定触到了最上面,要使轮廓线最短,那么轮廓肯定是中间一段平的 我们考虑先将轮廓线赋为2*n+2,然后删去左右两边多余的部分 如果最左边或最由边是正方形,那么不需要删 如果最左边或最由边是圆形,那么删取2 - pi/2 如果如果最左边或最
阅读全文
摘要:C - DZY Loves Colors 思路: 分块,复杂度有点玄学,和普通分块不同的是在这个块被一次染色的时候暴力染整个块。 代码:
阅读全文
摘要:3076 思路: dfs + 剪枝 首先,如果这个位置只能填一种字母,那就直接填 其次,如果对于每一种字母,如果某一列或者某一行或者某一块只能填它,那就填它 然后,对于某个位置如果不能填字母了,或者某种字母在一行一列或一块中出向了两次以上,说明当前方案不成立 最后贪心地从可选情况少的往下搜 代码:
阅读全文
摘要:D - Recovering BST 思路:区间dp dp[l][r][0]表示l到r之间的数字可以构成一个二叉搜索树,并且以r+1为根节点 dp[l][r][0]表示l到r之间的数字可以构成一个二叉搜索树,并且以l-1为根节点 代码:
阅读全文
摘要:基环树:无向图,一个环,环上每个点都是树根 完备的扣环方法(可以扣二元环): 例1:BZOJ 1791 思路:对于每个基环树,求出直径,然后加起来 基环树求直径方法,将基环树的环扣出来,求出以环上每个点为根节点的树的直径以及深度,然后在环上求边权前缀和,枚举j, 那么答案就是sum[j] - sum
阅读全文
摘要:E - Rest In The Shades 思路: 相似 红色的长度等于(y - s) / y 倍的 A' 和 B' 之间的 fence的长度 A' 是 p 和 A 连线和 x 轴交点, B'同理 交点也可以用相似求,然后lower_bound找到交点在哪里,然后通过预处理的fence长度的前缀和
阅读全文
摘要:天坑。。。 杭电 dls代码:https://ideone.com/Wo55gi 官方题解:http://bestcoder.hdu.edu.cn/blog/ 2018 Multi-University Training Contest 1 1001 Maximum Multiple 打表找规律,发
阅读全文
摘要:参考:https://www.cnblogs.com/RabbitHu/p/segtree.html 模板: const int N = 1e5 + 5, M = 2e6 + 5;//M为节点个数,为Q*log(N) int root[N], lson[M], rson[M], value[M],
阅读全文

浙公网安备 33010602011771号