08 2021 档案

摘要:题目 点这里看题目。 分析 对答案变形: \[ \sum_{e\in P}c_{e_u}+c_{e_v}=2\sum_{w\in P,w\not=u,w\not= v}c_w+c_u+c_v \] 因此我们需要关心的是最终路径上非 \(u\) 且非 \(v\) 的点的点权和。 假设 \(u<v\), 阅读全文
posted @ 2021-08-30 11:04 crashed 阅读(130) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 尝试构建一个分层图来描述机器人的行动。抛开初始点不谈,我们可以构造出一个 \(n+1\) 层,每层有若干个点的图,用 \((i,j)\) 表示第 \(i\) 层的第 \(j\) 个点。那么机器人的静止可以用有向边 \((i,j)\rightarrow (i+1,j)\) 阅读全文
posted @ 2021-08-30 10:27 crashed 阅读(99) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 容易看出,将序列分割并且递归,其实并不会影响排序过程。它影响的是 work_counter 的值——如果分割出了长度为 1 的序列,那么这个序列里面的值将不再贡献。而分割出长度为 1 的序列,其实就相当于某个元素到了它应该到的位置,并且在此之后不会被挪动。我们称这个元素成 阅读全文
posted @ 2021-08-27 15:48 crashed 阅读(87) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 不难看出,对 \(A\) 排序后,\(P_3,P_4,\dots,P_7\) 在序列上一定是连续的。因此实际上需要枚举的只有 \(P_1,P_2,P_3\) 三个数。 我们需要做下决定:设 \(q=P_4+P_5+P_6+P_7-P_3\),则有 \(P_1<P_2+P_ 阅读全文
posted @ 2021-08-27 08:24 crashed 阅读(278) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 对于任何一个合法的矩形 \((x_1,y_1,x_2,y_2)\),\([x_1,x_2]\) 和 \([y_1,y_2]\) 分别是行和列上的一个区间。由于合法的矩形还没啥比较好的性质,我们可以对于矩阵进行分治,每次对于行和列中较长者进行切分,并且计算某一维跨过了划分点 阅读全文
posted @ 2021-08-25 07:53 crashed 阅读(176) 评论(0) 推荐(1)
摘要:# 题目 [点这里](https://loj.ac/p/6029)看题目。 # 分析 看起来其它操作都易于维护,唯独这个区间下取整除的修改非常不可做。唯一的办法似乎是暴力地修改每一个节点。 但是我们可以**挑出一些特殊情况来特殊处理**。比如,考虑一个最大值为 $a$,最小值为 $b$ 的区间。如果 阅读全文
posted @ 2021-08-23 21:34 crashed 阅读(93) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 结论题什么的最恶心了:persevere: 假如你并不知道这道题该怎么做,只能猜一点性质然后假装它是对的做下去,你会猜什么呢? 设第 \(i\) 个点的度数为 \(d_i\)。为了方便,这里将每个点的度数都减了 1,因此有 \(\forall i,0\le d_i<n-1 阅读全文
posted @ 2021-08-23 20:37 crashed 阅读(188) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 显然可以构建出二分图的模型:将菜田放在左部,将订单放在右部,那么成为 Cabbage Master 的条件就是存在一个右部点被覆盖完的完美匹配。 那么很容易想到使用 Hall 定理。我们可以枚举右部的一个点集,并且取出右部中每个点的邻接点的并集,检查邻接点的总量是否足够。 阅读全文
posted @ 2021-08-23 20:13 crashed 阅读(101) 评论(1) 推荐(1)
摘要:题目 点这里看题目。 分析 介绍两种做法,一种是简单的题解方法,另一种是复杂的做法。 题解 假设有 \(C\) 种不同的颜色,我们可以先将颜色离散化,标号为 \(1,2,\dots,C\)。设第 \(i\) 种颜色数量为 \(a_i\)。 “不同的颜色的数量”也就是出现了的颜色的种数。因此我们可以设 阅读全文
posted @ 2021-08-23 19:37 crashed 阅读(111) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 我们用三元组 \((l,r,x)\) 表示令 \(a_l,a_{l+1},\dots,a_r\) 与起来为 \(x\) 的一条限制。 考虑给定一堆限制的时候,如何检查它们合不合法。 显然可以拆位考虑。枚举二进制的第 \(k\) 位,那么现在每个位置都只能是 0 或者 1。 阅读全文
posted @ 2021-08-22 18:02 crashed 阅读(120) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 做这道题目需要一点背景知识: 关于魔方群: 在这里我们研究的是二阶魔方,所以我们的范围也就仅是二阶魔方群。 由名字就可以知道,二阶魔方群应该是二阶魔方的所有可能状态构成的群。在此我们定义,两个状态是相等的,当且仅当可以通过旋转整个魔方使得两个状态在对应的色块上颜色一致。 阅读全文
posted @ 2021-08-20 21:14 crashed 阅读(227) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 暴力:对应地合并取值必然相同的位置,可以用并查集维护。由于最终最高位非 0,所以的答案为 \(9\times 10^{\text{连通块个数}-1}\)。 自然,我们需要优化这个过程。注意到我们总是对两段区间对应地合并,并且不存在在线的询问,这意味着进行标记的处理,将一些 阅读全文
posted @ 2021-08-18 20:33 crashed 阅读(52) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 首先注意到问题就是一个最短路的模型,但是边是连在区间上的,这提示我们应该使用数据结构优化建图。 考虑一个不那么粗暴的做法。一种想法是,由于用 Dijkstra 跑最短路的时候,只要出了堆就可以不用管了,那么我们可以每次只访问区间内有效的位置;这个位置可以使用链表/并查集维 阅读全文
posted @ 2021-08-18 19:01 crashed 阅读(52) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 首先注意到黑白石子是独立的两个游戏,我们可以分别求出它们的 \(sg\) 值,然后异或起来得到整个游戏的 \(sg\) 值。 之后分开考虑,白石子就是 Nim,因此白石子的 \(sg\) 值就是每堆白石子的数量的异或。 接着考虑黑石子。注意到我们每次只能操作最少的一堆,那 阅读全文
posted @ 2021-08-17 19:24 crashed 阅读(80) 评论(0) 推荐(0)
摘要:题目 一张圆形餐桌有 \(2n\) 个座位,现在有 \(n\) 对夫妻入座,要求男女隔位就坐,且一对夫妻不能相邻; 如果某种入座方案可以通过旋转得到另一种方案,则它们是本质相同的。求本质不同方案数。 数据范围:对于 \(100\%\) 的数据,满足 \(1\le n\le 10^5\),答案对 \( 阅读全文
posted @ 2021-08-16 22:03 crashed 阅读(167) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 非常好的一道题目。 我们不妨先考虑一个弱化的问题:根据题目给定的数据,如何判断 \((1,1)\) 能否到达 \((n,m)\)。 通过各种手玩可以得到下面四种情况会导致无解: 存在某一行无法通行,也即 \(\exist 1\le x\le n\),使得 \(\foral 阅读全文
posted @ 2021-08-16 08:18 crashed 阅读(251) 评论(1) 推荐(2)
摘要:题目 点这里看题目。 分析 玄学题目。直接搬运题解.jpg 解决这道题首先需要用到处理强连通图的一种特殊方法:耳分解 定理:一个有向图 \(G=(V,E)\) 为强连通,当且仅当它可以通过如下方法构造: 维护一个图 \(G'=(V',E')\);初始时,\(V'=\{v\},E'=\varnothi 阅读全文
posted @ 2021-08-15 14:25 crashed 阅读(357) 评论(0) 推荐(3)
摘要:树上莫队,顾名思义,就是到树上做莫队。一般会有两种写法,一种是将莫队正儿八经地搬到树上做;另一种是将莫队搬到树的括号序上做。 树上莫队 算法内容 这是在树上分块跑莫队的版本。考虑到莫队的实现过程,我们需要解决两个问题: 如何对树分块,才能保证复杂度? 如何移动标记来实现转移? 如何转移 首先我们来解 阅读全文
posted @ 2021-08-13 14:30 crashed 阅读(194) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 一个片段就是 \(\{1,2,\dots,n\}\) 的一个非空子集,所以片段共有 \(2^n-1\) 个; 问题相当于求片段集合的大小为 \(m\),且每个音符最终出现偶数次的子集数量。 看一下问题的限制: 所有片段非空; 集合中不存在相同的两个片段; 集合中每个元素总 阅读全文
posted @ 2021-08-10 19:23 crashed 阅读(75) 评论(0) 推荐(0)
摘要:一些体量比较小,但是有一定价值和一些闪光点的题目(也许就是想水几篇题解 阅读全文
posted @ 2021-08-10 19:07 crashed 阅读(300) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 手玩容易发现 good graph 的第二条要求等价于 \(G'\) 是二分图。 说明: 设 \(x_u\) 表示某种方案中 \(u\) 是否被操作。 那么有 \(|E'|\) 条方程。对于 \((u,v)\in E'\),方程的形式为 \(x_u\oplus x_v=1 阅读全文
posted @ 2021-08-09 22:26 crashed 阅读(115) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 一个简单的初始想法是:计算所有最终不是强连通的方案,然后再用总方案减去。 那么非强连通的方案经过缩点后,必然会变成 DAG 的形状。我们可以枚举所有 DAG 的形态,计算方案数: 每个强连通块的方案数:子问题,递归即可; 外部 DAG 的数量; 考虑求解 DAG 的数量。 阅读全文
posted @ 2021-08-09 22:08 crashed 阅读(121) 评论(0) 推荐(1)
摘要:题目 给定 \(n,k\),求所有 \(\{1,2,\dots,n\}\) 的排列中,逆序对数量为 $k$​ 的排列的数量,对 \(10^9+7\) 取模。 数据范围:对于 \(100\%\) 的数据,满足 \(1\le n\le 10^5,1\le k\le \min\{10^5,\binom{n 阅读全文
posted @ 2021-08-09 15:02 crashed 阅读(146) 评论(0) 推荐(0)
摘要:题目 分析 考虑某个子区间 \([l,r]\) 为“好”的限制: 对于每个点,其度数必须偶数; 所有的边连通; 然后将它们转化到序列上: 对于 \(b_i\),包含它的顺序对数量必须为偶数。这里的顺序对包括 \(b_j<b_i,j<i\) 和 $b_i<b_k,i<k$​​ 两种; 区间内不存在分界 阅读全文
posted @ 2021-08-08 17:15 crashed 阅读(75) 评论(0) 推荐(0)
摘要:代码托管到第三方平台上。 NOI2021 题解 D1T1 轻重边 水题 D1T2 路径交点 卡常的屑水题 考虑 \(k=2\) 的情况,每种路径方案都可以使用一个排列来描述,排列的逆序对数量就可以用来描述交点数。 因此,设矩阵 $M\in R^{n_1\times n_1},M_{ij}=[(i,j 阅读全文
posted @ 2021-08-05 18:49 crashed 阅读(610) 评论(0) 推荐(0)