09 2021 档案
发表于 2021-09-27 14:25阅读:19评论:1推荐:0
摘要:我考后整整写了 1 个多小时 … sol: 考验强大的数学推演能力 我们把一个节点视作 01 序列,走左子树相当于在序列末尾添加 0 ,走右子树相当于添加 1 。 那么两个点的距离其实取决于公共前缀的长度。 所以我们想到枚举 lca ,同时根据完全二叉树的对称性可知相同深度的点对答案的贡献是一样的。
阅读全文 »
发表于 2021-09-26 22:09阅读:4评论:0推荐:0
摘要:独立思考能力不足问题的切入点不够新颖
阅读全文 »
发表于 2021-09-19 19:51阅读:10评论:0推荐:0
摘要:好巧妙的思路。 先把这个环变成一条链,把最高的山作为第一个山,按照顺序复制序列,再在最后接上一个最高的山。 L[i] 表示左边第一个 > a[i] 的数 , R[i] 表示右边第一个 >= a[i] 的数,C[i] 表示重复高度为 a[i] 的连续区间长度 。首先 (L[i],i) 和 (i,R[i
阅读全文 »
发表于 2021-09-19 15:15阅读:25评论:0推荐:2
摘要:E - Moat 题意:求能包含所有村庄的形状为 多边形 的栅栏数量。 思路一 . 直接暴力枚举栅栏的最终状态,用并查集维护连通性,对于内部有空洞的情况搜索一发即可。 首先这道题码量比较大,其次很难想到暴力枚举 (第一感是状压 qwq),还有就是这个 多边形 的限制比较多,容易算错情况。总而言之这是
阅读全文 »
发表于 2021-09-18 15:29阅读:4评论:0推荐:0
摘要:sol: 考虑对于每个基环树求答案。 对于一棵树,考虑对于每个点只保留通向它的最大的边。 对于基环树,考虑强行断掉环上的一条边,记录环上点通向它的最大边和次大边,如果最大边都是环上边就必须选择一个点强行断成非环边。 注意特判所有点形成一个环的情况。 #include<bits/stdc++.h> #
阅读全文 »
发表于 2021-09-16 21:03阅读:4评论:0推荐:0
摘要:考察:完全二叉树 + 状压 dp 。 我们可以重新定义一下这个收费:当一个点到 LCA 颜色相同的时候不收钱,否则收一分钱。这样贡献可以分别算。(我的思维炸裂了 qwq 设 f [ i ] [ j ] [ k ] f[i][j][k] f[i][j][k] 表示树上第 i 个点的子树下有 j 个 B
阅读全文 »
发表于 2021-09-14 21:04阅读:16评论:0推荐:0
摘要:披着狼皮的羊 题意:让你选基环树上一个点,最小化所有点到该点的最短距离的最大值。 solution: 首先对于一颗树而言,将快餐店设在直径的中点一定最优,且答案为 d/2 。 推广到基环树上,可以证明快餐店设在 基环树直径的中点 一定最优,且答案为 d/2 。(巧妙的转化 然后求基环树直径有两种求法
阅读全文 »
发表于 2021-09-14 16:04阅读:2评论:0推荐:0
摘要:题目描述 你在一个秘密据点门口安装了监控探头,希望监控人员出入情况。 探头记录了据点某天从早到晚的人员进出情况,你不知道据点内开始的人数。 同时,进出据点的人可能会进行伪装,你无法从探头记录中得知伪装的人的身份。探头的每条记录是以下两个形式之一: E id 当 id>0 时,表示编号为 id 的人进
阅读全文 »
发表于 2021-09-13 15:48阅读:7评论:0推荐:0
摘要:考场上背包骗了 45 pts (雾 。 考点:状压 + 差分 + 最短路 说实话第一步转移我没太看懂。(但是不影响做法 可以把题目要求变换的位置看成 1 。 问题转化为若干次操作使得原序列全为 0 。 求出差分数组,问题转化为对于新的差分序列,每次将两个位置的状态取反。 如果当前为 1 的点有奇数个
阅读全文 »
发表于 2021-09-12 11:15阅读:5评论:0推荐:0
摘要:思维不太难,但是这道题的模型和普通的还是有点不太一样。 提供一个字符串转移的新姿势。 设 d p [ i ] [ j ] [ k ] dp[i][j][k] dp[i][j][k] 表示前 i i i 个字符,有 j j j 个未匹配的左括号,且包含序列 s s s 的前 k k k 个元素的方案数
阅读全文 »
发表于 2021-09-07 21:46阅读:7评论:0推荐:0
摘要:我入佛教哈哈哈。 图论最短路 + 状压 dp 的运用 Luogu_P6192 【模板】最小斯坦纳树 solution: 设 d p [ i ] [ s ] dp[i][s] dp[i][s] 表示以 i i i 为根的一颗树,包含集合 s s s 中所有点的最小边权和 显然 i 的每个子树都包含关键
阅读全文 »
发表于 2021-09-02 21:23阅读:5评论:0推荐:0
摘要:又是一种认识线段树的新姿势 ? 问题转化能力太差了 qwq. 考虑怎么求出答案。从左往右扫一遍,选一个最长递增序列的长度就是答案。 我们需要维护两个信息:rmax,len 。 设 pushup(l,r,x) 表示区间 [l,r] 的左高度大于 x 的最大区间长度。 为了保证方案合法,我们并不需要让
阅读全文 »
发表于 2021-09-02 16:30阅读:5评论:0推荐:0
摘要:Luogu_5490 【模板】扫描线 主要讲一个关于计算几何的扫描线算法。。 基础算法:动态开点 + 离散化 你考虑面积求交转化成线段求交即可。 #include<bits/stdc++.h> #define ll long long #define pii pair<int,int> #defin
阅读全文 »