10 2021 档案

摘要:思维不严谨被毒打了。(每日一个挂分小技巧 一个比较经典的 trick,重载小于号 a<ba+b<b+a,最后答案序列一定是满足 SpiSPi+1 。 然后我们直接 DP 即可,设 fi,j 表示最后一个串是 \(S_i 阅读全文
posted @ 2021-10-30 22:11 7KByte 阅读(168) 评论(0) 推荐(0) 编辑
摘要:今年还是在师大考,一样的机房。 提前 15 分钟进场,敲了个 gedit 配置就发题了。 开题,发现 T1 貌似一眼,用栈维护第 i 个廊桥装哪些飞机,然后求个前缀和即可,最后枚举国内和国外分几个廊桥更新答案。 然后看 T2,感觉一样的水,直接记 fl,r 表示区间 \([l, 阅读全文
posted @ 2021-10-23 20:30 7KByte 阅读(138) 评论(0) 推荐(0) 编辑
摘要:给定一个长度为 N+M1/2 序列,1 表示向优先队列中加入一个元素,2 表示删除最大值,恰有 N1M2,且保证序列合法。问有多少种可能的结束状态,依次加入的必须是一个长度为 N 的排列。 很好的思维题,观察 阅读全文
posted @ 2021-10-16 19:40 7KByte 阅读(292) 评论(0) 推荐(1) 编辑
摘要:对于两个大小分别为 N×MM×N 的矩形 A,B,令 C=AB。 \(|C| = \sum\limits_{k1<k_2<\cdots <k_n} |A(1\sim N;k_1,\cdots,k_m)|\times|B(k_1,\cdot 阅读全文
posted @ 2021-10-12 16:10 7KByte 阅读(198) 评论(0) 推荐(0) 编辑
摘要:很神的数数题,技巧性和思维难度都很高。 我们要求不存在一个位置相同,直接容斥转化为对于每个 i[0,n] 求存在 i 个位置相同。 题目的限制条件是给定恰好两个排列 P,Q,而不是给定多个排列,考虑其中的意义。 对于排列,等价于一个由若干个环组成的有向图。思考一下不难发 阅读全文
posted @ 2021-10-05 17:33 7KByte 阅读(282) 评论(0) 推荐(0) 编辑
摘要:子任务 1 树,n5×103 。 考虑 n2 动态规划。 定义 f[i][j] 表示已 i 为根,根的值为 j 的最小代价。 显然 j 只能取出现过的数,一共 n 种。 \(f[i][j]=c_i\times[j 阅读全文
posted @ 2021-10-04 17:12 7KByte 阅读(70) 评论(0) 推荐(0) 编辑
摘要:先膜拜楼上 7k 代码的神仙。 这里提供一个轻工业的做法。 首先考虑没有离开操作,那么对于每个询问,我们只需要知道最早在哪一次操作队列 A 的大小 B 。 这可以对所有询问离线,然后将每个询问挂在对应的位置,用线段树维护区间中询问的最小值。 这时一个加入操作,等价于区间减,当 阅读全文
posted @ 2021-10-04 17:11 7KByte 阅读(108) 评论(0) 推荐(0) 编辑
摘要:首先 j 为奇数时答案为 1 。 简单证明,j 个点之间的重心一定是一个可期待点。 根据重心的性质,所有可能的重心一定构成一条链。 那么已知一个重心为 x ,如果要移动到一个相邻点 y ,则断开 (x,y) 后两颗子树大小一定相同。 而 j阅读全文
posted @ 2021-10-04 17:11 7KByte 阅读(98) 评论(0) 推荐(0) 编辑
摘要:这应该是 JOISC2021 最简单的一题了。 求前 k 大的曼哈顿距离,先考虑求第 k 大的距离。 第 k 大的距离,比较套路的做法是二分答案,然后计算距离 dis 的点对数。 曼哈顿距离不好求,考虑转化为切比雪夫距离,原来的点 \((x,y)\to (x+y 阅读全文
posted @ 2021-10-04 17:10 7KByte 阅读(57) 评论(0) 推荐(0) 编辑
摘要:大模拟,需要肝。 我们一步步分解。 首先最开始只有第一个个点被感染了,那么我们最先固定第一个人的方向,有 4 种选择。 对于第一个点初始方向上的点,一定与 1 号点相向运动,否则它们既不会被感染,也不会感染别人,没有任何作用。我们称这类点为 A 类节点 对于 阅读全文
posted @ 2021-10-04 17:09 7KByte 阅读(137) 评论(0) 推荐(0) 编辑
摘要:求字典序最小的答案,从前往后一次考虑每一位。 即枚举 i1n 判断当前活动加入后是否能够达到 k 的总数,如果能则加入当前的 i 。 这样我们只用在线维护当前空缺位置能够加入活动的最大值。 考虑加入活动 i 后,最多由原来的一个连续区间断开 阅读全文
posted @ 2021-10-04 17:09 7KByte 阅读(64) 评论(0) 推荐(0) 编辑
摘要:比较清新的数据结构体。 首先观察到 n 比较小,考虑多个 log 或 根号算法。 先考虑固定 x 怎么做,我们可以写一个 calc(l,r) 函数表示时间区间在 [l,r] 内的代价是多少,每次求出区间 [l,r] 中编号最小的日程安排 (x,y),加 阅读全文
posted @ 2021-10-04 17:08 7KByte 阅读(35) 评论(0) 推荐(0) 编辑
摘要:莫队模板题。 首先这个问题不弱于带修数颜色,所以考虑带修莫队。 同时 cnt 的取值不超过 n 种,所以我们可以用链表维护出现的 cnt 取值。 对于每次询问,将这 ncnt 从小到大排序,答案就是最短的连续一段满足出现次数之 阅读全文
posted @ 2021-10-04 17:07 7KByte 阅读(63) 评论(0) 推荐(0) 编辑
摘要:神仙图论题。 给定一张无向图,对于每个点指定两个排名 pi,qi,使得对于每条边 (u,v)(pupv)(quqv)>0 ,也就是相对排名相同。构造两个排列 p,q 使得 piqi 的位置最多。 转换一下,对于每条边指定一个方向 阅读全文
posted @ 2021-10-04 17:07 7KByte 阅读(66) 评论(0) 推荐(0) 编辑
摘要:神仙 DP 题。 首先,可行性转换为最优性。我们定义状态 f[i] 表示前 i 盏灯能够最多能覆盖区间 [1,f[i]] 中所有的灯。 这是最关键的一步,后面的步骤都比较套路。需要注意细节和边界问题。 对于当前的 i ,只有向左和向右两种选择。 选择向 阅读全文
posted @ 2021-10-04 17:06 7KByte 阅读(4) 评论(0) 推荐(0) 编辑
摘要:某神奇的函数合并算法——Slope trick。 Codeforces 原文链接 梗概: 对于那么对于一个函数,我们称之为可Slope ,当且仅当函数图像是一个凸包或一条直线。 不失一般性,我们只考虑下凸包。 显然这个函数可以写作一个分段函数。 但是这样写效率太低,我们换一种描述方式。 首先我们记录 阅读全文
posted @ 2021-10-04 17:03 7KByte 阅读(234) 评论(0) 推荐(0) 编辑
摘要:提供一个不用组合数的方法。 首先对 ai 从小到大排序。 我们定义状态 fi,j 表示当前最大值为 ai,排列 p 填了前面 j 个方案数。 那么有初值 f0,0=1。 依题意,我们有两种转移。 第一种是在排列后面加入一个高兴的人,枚举 阅读全文
posted @ 2021-10-04 16:59 7KByte 阅读(37) 评论(0) 推荐(0) 编辑
摘要:很有意思的动态规划。 这道题的关键点在于想到用 string 作为动态规划的 f 数组。 首先前 i 次操作只能影响前 i+1 个位置,所以我们定义状态 f[i] 表示前 i 次操作,前 i+1 个位置字典序最小的串。 对于 OUDR 操作,直接模拟一 阅读全文
posted @ 2021-10-04 16:59 7KByte 阅读(33) 评论(0) 推荐(0) 编辑
摘要:JOISC 2020 有一个团子提交题是个加强版,可以看下。 如果我们将可以得团子得地方看成一个点,如果两个团子有交点,则连边,我们要求得就是最大独立集。 由于只有横竖团子之间有边,所以是二分图,直接跑最大匹配即可。不知道时间是否卡的过去,没有试。 但是观察一下发现相交只有三种情况。 RGW R R 阅读全文
posted @ 2021-10-04 16:58 7KByte 阅读(48) 评论(0) 推荐(0) 编辑
摘要:找规律题。 不难想出区间 DP ,但是 O(N3) 已经是信息极限了。 观察这道题的特殊性质。 我们只关注最终序列,每一个位置是否取反,所以我们打一个暴搜的代码。 #include<bits/stdc++.h> #define rep(i,a,b) fo 阅读全文
posted @ 2021-10-04 16:57 7KByte 阅读(40) 评论(0) 推荐(0) 编辑
摘要:比较套路的题目。 首先我们需要求出 ST 的最短路可行边。 我们分别以 S/T 为起点,跑最短路得到 dist1,dist2 ,如果两端 dist 之和加上边的长度为最短路,则当前边出现在一条最短路中。 现在从 UV ,免费的一定是一条连续 阅读全文
posted @ 2021-10-04 16:57 7KByte 阅读(53) 评论(0) 推荐(0) 编辑
摘要:DP 神题。 首先观察表格,发现异色的点对无论如何都会产生 f 的贡献,同色的点对当且仅当该颜色不是它们 LCA 管辖子树中出现次数最多的颜色时,才会产生 2f 的贡献。 由于贡献只有 0,f,2f 的区别,所以我们不难想到,如果我们固定一个路由器的颜色为 \ 阅读全文
posted @ 2021-10-04 16:56 7KByte 阅读(148) 评论(0) 推荐(0) 编辑
摘要:给你 n 个字符串,对每个字符串,你可以删除其任意一个字符或让其保持原样,求最后使得字符串字典序不降得方案数。 不难想到一个 O(n(|S|)2) ,我们定义状态 fi,j 表示前 i 个字符串,结尾的字符串是第 i 个字 阅读全文
posted @ 2021-10-04 16:54 7KByte 阅读(71) 评论(0) 推荐(0) 编辑
摘要:很好奇这个以度数为 0/1/2 为状态是怎么推出来的。 不应该是定义状态 fi,0/1 表示以节点 i 为根的子树中,i 父亲这条边选不选的最优方案么。 这样当 op=1 时,可以从子树中传一条单链上去,否则必须在节点 i 处匹配完。 htt 阅读全文
posted @ 2021-10-04 16:52 7KByte 阅读(29) 评论(0) 推荐(0) 编辑
摘要:考虑到 N104 ,显然是 O(N2) 可过。 所以我们可以直接枚举两个区间计算贡献。 显然如果我们知道两两区间的距离,可以直接前缀和 O(NQ) 求出最终答案。 现在我们计算两两区间的距离,直接枚举并匹配是 \(\math 阅读全文
posted @ 2021-10-04 16:50 7KByte 阅读(73) 评论(0) 推荐(0) 编辑
摘要:一看就是什么正经的题目,乱搞就完事了。 输出的规模应该是 N 级别的,否则也不会让输出。 分析一下,每种玩具有 ci 个,那么可以玩 (ci+1) 天。 所以写个暴搜就行了。状态 (n, last, sum) 表示剩下的数乘积为 \( 阅读全文
posted @ 2021-10-04 16:50 7KByte 阅读(44) 评论(0) 推荐(0) 编辑
摘要:0x00 前置芝士 必备芝士 Binary  Index  Tree Persistent  Segment  Tree 什么?不会主席树,点击luogu题解然后成为大牛(讲解真的很好,Orz神犇 ~当然,如果能提前了解下线段树套线段树和线段树套平衡树会更好(洛谷日报 阅读全文
posted @ 2021-10-04 16:48 7KByte 阅读(165) 评论(0) 推荐(0) 编辑
摘要:本来不想写的,结果还是写了(别问我为什么 Day1 T1 格雷码,开题发现题面很长,预感不好 问题的本质是提供格雷码的构造方法,求构造有序集合中的第K个格雷码 开始想着如何去推公式(某凯的疑惑),半个小时没推出来,只好回去想如何去优化模拟 显然我们并不用把前K个格雷码全部列出来,显 阅读全文
posted @ 2021-10-04 16:47 7KByte 阅读(56) 评论(0) 推荐(0) 编辑
摘要:Day -2 在家自己复习,感觉状态不是很好。打了几道模板SAM带线段树合并维护endpos集合的题,调了很久,心态有点崩。 Day -1 早上出发赶火车,在火车站前和教练学长回合。 顺利登上火车。中途还要换乘。第一次做高铁,体验还是不错的。就是火车上网络不咋样,想刷下洛谷都刷不成。后来试着连高铁上 阅读全文
posted @ 2021-10-04 16:46 7KByte 阅读(76) 评论(0) 推荐(0) 编辑
摘要:给定一个长度为 N 的序列 D,每次可以选择向一个方向走长度为 D,问是否能走到 (A,B)。 很久没有做到这种让人眼前一亮的题目。 首先我们考虑如果只能走正方向,那么就是将这堆数分称两堆,使得两堆数之和分别为 A,B。 对于这个简化的问题,目前最优的方法是 阅读全文
posted @ 2021-10-03 17:35 7KByte 阅读(75) 评论(0) 推荐(0) 编辑
摘要:给定 N,M,求有多少个大小为 k 的可重集满足所有元素之和为 N,同一个数最多出现 M 次。对于每个 k=1n 求出答案。 我们可以将大小为 k 的可重集转化为长度为 k 的不降序列,满足第一个数 >0​,不存在 M阅读全文
posted @ 2021-10-03 16:36 7KByte 阅读(189) 评论(0) 推荐(2) 编辑
摘要:跳跃表,简称跳表。一种链式数据结构,可用于支持平衡树的操作。 【模板】普通平衡树 跳表基于随机化,每个节点以 12 的概率保留一层,14 几率保留两层,依次类推。 期望时间复杂度 O(NlogN)​,实际运行不逊于主流平 阅读全文
posted @ 2021-10-02 15:55 7KByte 阅读(57) 评论(0) 推荐(0) 编辑
摘要:对于序列 a(n),我们称 b(m)a 的子序列,当且仅当存在 c(m) 使得 1i<m,ci<ci+1 并且 1im,aci=bi。 一个序列的子序列有 \ 阅读全文
posted @ 2021-10-01 20:05 7KByte 阅读(263) 评论(0) 推荐(0) 编辑
摘要:首先我们要求集合中所有方案的代价之和,简单分析下不难发现,如果每个位置都传球了,那么每个位置都少传一个球的方案一定会被重复统计。 所以答案就是总方案数减去每个位置都至少传一个球的方案数。 考虑 xi 的意义,等价于传球后从每个人手中拿出一个球的方案数。 因此我们将每个人的球排成 阅读全文
posted @ 2021-10-01 15:33 7KByte 阅读(137) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示