10 2021 档案
摘要:今年还是在师大考,一样的机房。 提前 15 分钟进场,敲了个 gedit 配置就发题了。 开题,发现 T1 貌似一眼,用栈维护第 个廊桥装哪些飞机,然后求个前缀和即可,最后枚举国内和国外分几个廊桥更新答案。 然后看 T2,感觉一样的水,直接记 表示区间 \([l,
阅读全文
摘要:给定一个长度为 的 序列, 表示向优先队列中加入一个元素, 表示删除最大值,恰有 个 , 个 ,且保证序列合法。问有多少种可能的结束状态,依次加入的必须是一个长度为 的排列。 很好的思维题,观察
阅读全文
摘要:对于两个大小分别为 和 的矩形 ,令 。 \(|C| = \sum\limits_{k1<k_2<\cdots <k_n} |A(1\sim N;k_1,\cdots,k_m)|\times|B(k_1,\cdot
阅读全文
摘要:很神的数数题,技巧性和思维难度都很高。 我们要求不存在一个位置相同,直接容斥转化为对于每个 求存在 个位置相同。 题目的限制条件是给定恰好两个排列 ,而不是给定多个排列,考虑其中的意义。 对于排列,等价于一个由若干个环组成的有向图。思考一下不难发
阅读全文
摘要:先膜拜楼上 7k 代码的神仙。 这里提供一个轻工业的做法。 首先考虑没有离开操作,那么对于每个询问,我们只需要知道最早在哪一次操作队列 的大小 。 这可以对所有询问离线,然后将每个询问挂在对应的位置,用线段树维护区间中询问的最小值。 这时一个加入操作,等价于区间减,当
阅读全文
摘要:首先 为奇数时答案为 。 简单证明, 个点之间的重心一定是一个可期待点。 根据重心的性质,所有可能的重心一定构成一条链。 那么已知一个重心为 ,如果要移动到一个相邻点 ,则断开 后两颗子树大小一定相同。 而 为
阅读全文
摘要:这应该是 JOISC2021 最简单的一题了。 求前 大的曼哈顿距离,先考虑求第 大的距离。 第 大的距离,比较套路的做法是二分答案,然后计算距离 的点对数。 曼哈顿距离不好求,考虑转化为切比雪夫距离,原来的点 \((x,y)\to (x+y
阅读全文
摘要:大模拟,需要肝。 我们一步步分解。 首先最开始只有第一个个点被感染了,那么我们最先固定第一个人的方向,有 种选择。 对于第一个点初始方向上的点,一定与 号点相向运动,否则它们既不会被感染,也不会感染别人,没有任何作用。我们称这类点为 类节点 对于
阅读全文
摘要:求字典序最小的答案,从前往后一次考虑每一位。 即枚举 从 到 判断当前活动加入后是否能够达到 的总数,如果能则加入当前的 。 这样我们只用在线维护当前空缺位置能够加入活动的最大值。 考虑加入活动 后,最多由原来的一个连续区间断开
阅读全文
摘要:比较清新的数据结构体。 首先观察到 比较小,考虑多个 或 根号算法。 先考虑固定 怎么做,我们可以写一个 calc(l,r) 函数表示时间区间在 内的代价是多少,每次求出区间 中编号最小的日程安排 ,加
阅读全文
摘要:莫队模板题。 首先这个问题不弱于带修数颜色,所以考虑带修莫队。 同时 的取值不超过 种,所以我们可以用链表维护出现的 取值。 对于每次询问,将这 种 从小到大排序,答案就是最短的连续一段满足出现次数之
阅读全文
摘要:神仙 题。 首先,可行性转换为最优性。我们定义状态 表示前 盏灯能够最多能覆盖区间 中所有的灯。 这是最关键的一步,后面的步骤都比较套路。需要注意细节和边界问题。 对于当前的 ,只有向左和向右两种选择。 选择向
阅读全文
摘要:某神奇的函数合并算法——Slope trick。 Codeforces 原文链接 梗概: 对于那么对于一个函数,我们称之为可Slope ,当且仅当函数图像是一个凸包或一条直线。 不失一般性,我们只考虑下凸包。 显然这个函数可以写作一个分段函数。 但是这样写效率太低,我们换一种描述方式。 首先我们记录
阅读全文
摘要:提供一个不用组合数的方法。 首先对 从小到大排序。 我们定义状态 表示当前最大值为 ,排列 填了前面 个方案数。 那么有初值 。 依题意,我们有两种转移。 第一种是在排列后面加入一个高兴的人,枚举
阅读全文
摘要:很有意思的动态规划。 这道题的关键点在于想到用 string 作为动态规划的 数组。 首先前 次操作只能影响前 个位置,所以我们定义状态 表示前 次操作,前 个位置字典序最小的串。 对于 OUDR 操作,直接模拟一
阅读全文
摘要:JOISC 2020 有一个团子提交题是个加强版,可以看下。 如果我们将可以得团子得地方看成一个点,如果两个团子有交点,则连边,我们要求得就是最大独立集。 由于只有横竖团子之间有边,所以是二分图,直接跑最大匹配即可。不知道时间是否卡的过去,没有试。 但是观察一下发现相交只有三种情况。 RGW R R
阅读全文
摘要:找规律题。 不难想出区间 ,但是 已经是信息极限了。 观察这道题的特殊性质。 我们只关注最终序列,每一个位置是否取反,所以我们打一个暴搜的代码。 #include<bits/stdc++.h> #define rep(i,a,b) fo
阅读全文
摘要:比较套路的题目。 首先我们需要求出 的最短路可行边。 我们分别以 为起点,跑最短路得到 ,如果两端 之和加上边的长度为最短路,则当前边出现在一条最短路中。 现在从 ,免费的一定是一条连续
阅读全文
摘要:DP 神题。 首先观察表格,发现异色的点对无论如何都会产生 的贡献,同色的点对当且仅当该颜色不是它们 管辖子树中出现次数最多的颜色时,才会产生 的贡献。 由于贡献只有 的区别,所以我们不难想到,如果我们固定一个路由器的颜色为 \
阅读全文
摘要:很好奇这个以度数为 为状态是怎么推出来的。 不应该是定义状态 表示以节点 为根的子树中, 父亲这条边选不选的最优方案么。 这样当 时,可以从子树中传一条单链上去,否则必须在节点 处匹配完。 htt
阅读全文
摘要:考虑到 ,显然是 可过。 所以我们可以直接枚举两个区间计算贡献。 显然如果我们知道两两区间的距离,可以直接前缀和 求出最终答案。 现在我们计算两两区间的距离,直接枚举并匹配是 \(\math
阅读全文
摘要:本来不想写的,结果还是写了(别问我为什么 格雷码,开题发现题面很长,预感不好 问题的本质是提供格雷码的构造方法,求构造有序集合中的第个格雷码 开始想着如何去推公式(某凯的疑惑),半个小时没推出来,只好回去想如何去优化模拟 显然我们并不用把前个格雷码全部列出来,显
阅读全文
摘要:Day -2 在家自己复习,感觉状态不是很好。打了几道模板SAM带线段树合并维护endpos集合的题,调了很久,心态有点崩。 Day -1 早上出发赶火车,在火车站前和教练学长回合。 顺利登上火车。中途还要换乘。第一次做高铁,体验还是不错的。就是火车上网络不咋样,想刷下洛谷都刷不成。后来试着连高铁上
阅读全文
摘要:给定一个长度为 的序列 ,每次可以选择向一个方向走长度为 ,问是否能走到 。 很久没有做到这种让人眼前一亮的题目。 首先我们考虑如果只能走正方向,那么就是将这堆数分称两堆,使得两堆数之和分别为 。 对于这个简化的问题,目前最优的方法是
阅读全文
摘要:跳跃表,简称跳表。一种链式数据结构,可用于支持平衡树的操作。 【模板】普通平衡树 跳表基于随机化,每个节点以 的概率保留一层, 几率保留两层,依次类推。 期望时间复杂度 ,实际运行不逊于主流平
阅读全文
摘要:首先我们要求集合中所有方案的代价之和,简单分析下不难发现,如果每个位置都传球了,那么每个位置都少传一个球的方案一定会被重复统计。 所以答案就是总方案数减去每个位置都至少传一个球的方案数。 考虑 的意义,等价于传球后从每个人手中拿出一个球的方案数。 因此我们将每个人的球排成
阅读全文