04 2019 档案
摘要:【BZOJ4445】[SCOI2015]小凸想跑步(半平面交) 题面 "BZOJ" "洛谷" 题解 首先把点给设出来, 然后我们考虑$S_\Delta ABP include include in
阅读全文
摘要:【LOJ 3097】[SNOI2019]通信(费用流) 题面 "LOJ" 题解 暴力就直接连条边。 然后分治/主席树优化连边就行了。 ~~抄zsy代码,zsy代码是真的短~~ cpp include include include using namespace std; defin
阅读全文
摘要:【LOJ 3096】[SNOI2019]数论 题面 "LOJ" 题解 考虑枚举一个,然后考虑有多少个合法的。 首先这个数可以写成的形式,那么它模的值成环。 所以我们预处理每个环内有多少个合法的,再把按照访问顺序记录一下,那么对于每一个就可以直接算答
阅读全文
摘要:【LOJ 3095】[SNOI2019]字符串(后缀数组) 题面 "LOJ" 题解 首先画图看看如何比较两个串的大小,发现这个东西等价于求两个相邻的后缀的。 一个做法是求出,然后就可以很容易的判断两个位置的大小了。 然而实际上相邻两个后缀的转移可以很容易的从前一个得到,所
阅读全文
摘要:【BZOJ4032】[HEOI2015]最短不公共子串(后缀自动机,序列自动机) 题面 "BZOJ" "洛谷" 题解 数据范围很小,直接暴力构建后缀自动机和序列自动机,然后直接在两个自动机上进行,找到的第一个不同时存在的节点就直接输出就好了。 cpp include include inc
阅读全文
摘要:【BZOJ4030】[HEOI2015]小L的白日梦 题面 "BZOJ" "洛谷" 题解 要求的是最小的不开心连续段的期望。 然后发现自己就不会做了。 然后就可以来 "抄题解" 啦。 首先来猜性质: 第一个,一定是按照不高兴的概率单调不增的一个序列。 还是比较容易猜到的,这个证明也不难,首先我们把这
阅读全文
摘要:【BZOJ4029】[HEOI2015]定价(贪心) 题面 "BZOJ" "洛谷" 题解 每次加上十进制下的就行了???
阅读全文
摘要:【CF1152F】Neko Rules the Catniverse(动态规划) 题面 "CF" 题解 我们先考虑一个需要扫一遍所有位置的做法。 那么状态一定是然后什么什么表示考虑到当前第个位置的答案。 看看我们还需要记录什么,首先肯定要记录的是当前已经选了几个,所以多了一维
阅读全文
摘要:【BZOJ4028】[HEOI2015]公约数数列(分块) 题面 "BZOJ" "洛谷" 题解 ~~看一道题目就不会做系列~~ 首先最多只会有种取值,所以我们可以暴力枚举出所有可能的。 那么我们现在按照步骤要解决两个问题。第一个是怎么动态维护的取值,第二个是怎
阅读全文
摘要:【BZOJ4013】[HNOI2015]实验比较(动态规划) 题面 "BZOJ" "洛谷" 题解 看题目意思就是给你一棵树,连边表示强制顺序关系。然后你要给点染色,在满足顺序关系的情况下,将序列染成若干个颜色,同颜色之间没有顺序关系。求染色方案数。 那么设表示以为根的子树内有
阅读全文
摘要:【BZOJ4007】[JLOI2015]战争调度(动态规划) 题面 "BZOJ" "洛谷" 题解 神仙题,我是做不来。 一个想法是设表示当前考虑到节点,其子树内有个人选择了打仗的最大贡献。 但是我们发现直接做我们并不会转移,因为我们不知道每个儿子的选择情况。 那么我们直
阅读全文
摘要:【BZOJ4000】[TJOI2015]棋盘(矩阵快速幂,动态规划) 题面 "BZOJ" "洛谷" 题解 发现所有的东西都是从开始编号的,所以状压只需要压一行就行了。 然后就可以随意矩乘了。 cpp include include include using namespace std; de
阅读全文
摘要:【BZOJ3999】[TJOI2015]旅游(Link Cut Tree) 题面 "BZOJ" "洛谷" 题解 一道不难的题(用树链剖分不是为难自己吗,这种有方向的东西用不是方便那很多吗。。。) 维护一下"左子树的最小值减去右子树的最大值"的最大值就行了。 因为要支持翻转操作,所
阅读全文
摘要:【BZOJ4001】[TJOI2015]概率论(生成函数) 题面 "BZOJ" "洛谷" 题解 这题好仙啊。。。。 设表示个点的二叉树个数,表示个点的二叉树的叶子个数。 最终要求的东西就是。 考虑这个玩意怎么转移,先考虑二叉树个数,即
阅读全文
摘要:【BZOJ3997】[TJOI2015]组合数学(动态规划) 题面 "BZOJ" "洛谷" 题解 相当妙的一道题目。~~不看题解我只会暴力网络流~~ 先考虑要求的是一个什么东西,我们把每个点按照拆成若干个点,每个具有二维偏序关系的点之间连一条边,于是我们就有了一个,要求的
阅读全文
摘要:Forethought Future Cup Elimination Round 窝也不知道这是个啥比赛QwQ A. Love "A" 给你一个串,你可以删去若干个元素,使得最后 的个数严格大于一半。求最大串长。 cpp include include include using namespace
阅读全文
摘要:[BJOI2019]删数(线段树) 题面 "洛谷" 题解 按照值域我们把每个数的出现次数画成一根根的柱子,然后把柱子向左推导,中未被覆盖的区间长度就是答案。 于是问题变成了单点修改值,即修改两根柱子的长度。全体修改就可以理解为询问区间的平移。 那么只需要拿线段树维护这个东西就行了。
阅读全文
摘要:[BJOI2019]光线(递推) 题面 "洛谷" 题解 假装玻璃可以合并,假设前面若干玻璃的透光率是,从最底下射进去的反光率是,当前的玻璃的透光率和反光率是。 那么可以得到转移: $$A=A'\sum_{j=0}^\infty B'^j b^j a=\frac{A'a}{1 B
阅读全文
摘要:[BJOI2019]排兵布阵(动态规划) 题面 "洛谷" 题解 暴力dp: 设表示考虑到了第座城市用了人的最大收益,枚举在这个城市用多少人就可以了。 优化: 发现用的人数一定是某个敌人的人数的二倍加一,那么决策只有个。 时间复杂度。(不满)
阅读全文
摘要:[BJOI2019]勘破神机(斯特林数,数论) 题面 "洛谷" 题解 先考虑的情况。 显然方案数就是,即斐波那契数,虽然这里求出来是斐波那契的第项,但是本质上没什么区别,就默认是斐波那契数列了。 斐波那契数列的特征根是$\alpha=\f
阅读全文
摘要:[BJOI2019]奥术神杖(分数规划,动态规划,AC自动机) 题面 "洛谷" 题解 首先乘法取变加法,开次根变成除。 于是问题等价于最大化。典型的分数规划的形式。 二分权值,每个点的点权变成$val
阅读全文
摘要:【CF932E】Perpetual Subtraction(NTT,线性代数) 题面 "洛谷" "CF" 题解 设表示轮之后这个数恰好为的概率。 得到转移:$\displaystyle f_{i,j}=\sum_{k=j}^{n}f_{i 1,k} \frac{1}{k
阅读全文
摘要:【LOJ 2402】[THUPC2017]天天爱射击(整体二分) 题面 "LOJ" 题解 显然对于每块木板可以二分被打烂的时间。 那么直接上整体二分处理就行了。 cpp include include include include include include include using nam
阅读全文
摘要:【CF1151E】Number of Components 题面 "CF" 题解 联通块个数=点数 边数。 然后把边全部挂在较小的权值上。 考虑从小往大枚举左端点,等价于每次删掉一个元素,那么删去点数,加上边数,修改一下当前值就行了。 这个东西对于任意形态的树都可以做。 cpp include in
阅读全文
摘要:【CF1151F】Sonya and Informatics(动态规划,矩阵快速幂) 题面 "CF" 题解 考虑一个暴力。假设有个,个。设表示当前做到了第个操作,前个元素中有个的方案数。 转移就枚举交换哪两个东西就可以了。
阅读全文
摘要:【BZOJ5507】[GXOI/GZOI2019]旧词(树链剖分,线段树) 题面 "BZOJ" "洛谷" 题解 如果就是链并裸题了。。。 其实发现还是可以用类似链并的思想,这个东西本质上就是对于当前的一个,考虑对于其他所有点的贡献,而他们的一定是到根节点链上
阅读全文
摘要:【BZOJ5506】[GXOI/GZOI2019]旅行者(最短路) 题面 "BZOJ" "洛谷" 题解 正着做一遍求出最短路径以及从谁转移过来的,反过来做一遍,如果两个点不由同一个点转移过来就更新答案。 cpp include include include include using n
阅读全文
摘要:【BZOJ5505】[GXOI/GZOI2019]逼死强迫症(矩阵快速幂) 题面 "BZOJ" "洛谷" 题解 如果没有那两个的东西,答案就是斐波那契数,可以简单的用得到。 大概是设表示当前除了到第列的方案数,转移是考虑用竖着覆盖一列还是个$1 2
阅读全文
摘要:【BZOJ5503】[GXOI/GZOI2019]宝牌一大堆(动态规划) 题面 "BZOJ" "洛谷" 题解 首先特殊牌型直接特判。 然后剩下的部分可以直接,直接把所有可以存的全部带进去大力就行了。 发现每多一张牌胡的本质就是把一个刻字换成杠子,所以这两个东西记录在一起就行了。 那么
阅读全文
摘要:【BZOJ5502】[GXOI/GZOI2019]与或和(单调栈) 题面 "BZOJ" "洛谷" 题解 看到位运算就直接拆位,于是问题变成了求有多少个全子矩阵和有多少个全子矩阵。 这两个操作本质就是一样的,不妨考虑有多少个全子矩阵。 预处理出每个元素向上能够找的最多的的个数,
阅读全文
摘要:[ZJOI2019]麻将(动态规划,自动机) 题面 "洛谷" 题解 先做一点小铺垫,对于一堆牌而言,我们只需要知道这张牌分别出现的次数就行了,即我们只需要知道一个长度为的串就可以了。 首先考虑如何判断一副牌是不是能胡。 出现了七对牌的情况很容易特判处理掉,只需要考虑第一种情况。 那么我们
阅读全文
摘要:Educational Codeforces Round 62 A. Detective Book 一本书有页,每一页都有一个谜题,第页谜题的答案在。现在一个人看书,他每天往后看一页,然后一直往后看,直到他看到了他已知的所有谜题的答案就停止。 问这个人要看多少天。 模拟题。 c
阅读全文
摘要:【BZOJ5499】[2019省队联测]春节十二响(贪心) 题面 "BZOJ" "洛谷" 题解 如果是一条折链,显然维护两侧的值,每次两个堆分别弹出一个然后合并一下,最后再放回去就可以了。 那么现在回到一棵树上,可以认为就是本身有一条链,现在每次要合并一条链进来,那么拿一个堆维护这个合并过
阅读全文
摘要:【BZOJ5498】[十二省联考2019]皮配(动态规划) 题面 "BZOJ" "洛谷" 题解 先考虑暴力,设表示前所学校,有人在某个阵营,有人在某个派系的方案数。 发现如果,那么可以先决策每个城市选择哪一个阵营,再对于每个学校选择哪一个派
阅读全文
摘要:AtCoder Grand Contest 013 A Sorted Arrays 翻译 给定一个长度为的数组,你需要把它分割成若干段连续的区间,每一段都必须单增或者单减,求最少分多少段。 题解 设表示划分前个数字的最小段
阅读全文
摘要:AtCoder Grand Contest 012 A AtCoder Group Contest 翻译 有个人,每一个人有一个强大值(看我的假翻译),每三个人可以分成一组,一组的强大值定义为三个人中第二强的人的强大值。求组最大的强大值之和。 题解 这。。。不是倒着选两个人,正着选一个
阅读全文
摘要:Codeforces Round 551 (Div. 2) 题解 A. Serval and Bus 有若干种公交车,第种会从时刻开始,每过秒会出现一次。现在有一个人在时刻到达车站,问它会碰到的第一辆车是哪一种。 傻逼题 cpp include include u
阅读全文
摘要:【BZOJ5496】[十二省联考2019]字符串问题(后缀树) 题面 "BZOJ" "洛谷" 题解 首先显然可以把具有支配关系的串从到连一条有向边,如果是的前缀,就从连一条边到。这样子问题就转化成了要求解这个二分图的最长路经,有环答案就是。 然后显
阅读全文
摘要:省选题记录 看起来辣鸡yyb打算跟着做做省选题了。 那么就汇总在这里吧。 我做完的链接就是题解,否则就是题面。 做完的就加粗+斜体,没做完的就划掉吧。 "~~[HNOI2019]鱼~~" "~~[HNOI2019]JOJO~~" " [HNOI2019]多边形 " " [HNOI2019]校园旅行
阅读全文
摘要:【BZOJ5495】[十二省联考2019]异或粽子(主席树,贪心) 题面 "BZOJ" "洛谷" 题解 ~~这不是送分题吗。。。~~ 转异或前缀和,构建可持久化。 然后拿一个堆维护每次的最大值,每次如果取了一个数,就把它再在树上查一次新建一个元素丢回堆里就行了。 cpp in
阅读全文
摘要:Codeforces Global Round 2 因为省选所以没打 orz打了的1tst上红了,成为了全机房唯一制定GM。 A. Ilya and a Colorful Walk 给你一个数列,问任意两个不同元素的距离的最大值是多少。 这个随便做吧。。 C. Ramesses and Corner
阅读全文
摘要:[HNOI2019]校园旅行(bfs) 题面 "洛谷" 题解 首先考虑暴力做法怎么做。 把所有可行的二元组全部丢进队列里,每次两个点分别向两侧拓展一个同色点,然后更新可行的情况。 这样子的复杂度是的。 考虑如何优化边数,先说结论: 首先对于一个同色联通块,如果它是一个二分图,那么只需
阅读全文
摘要:[HNOI2019]多边形(模拟,组合计数) 题面 "洛谷" 题解 ~~突然特别想骂人,本来我考场现切了的,结果WA了几个点,刚刚拿代码一看有个地方忘记取模了。~~ 首先发现终止态一定是所有点都向连边(看样例图解就知道了) 那么大力猜想一下第一问的答案一定是和号点直接相连的边
阅读全文
摘要:HNOI2019游记 Day0 这么快啊,明天就是省选了。 说真的,从高一到高二,完完全全是两种不一样的心态吧。高一的时候总觉得明年还有一年,是相当放松的,对于结果无所谓。到了高二再说没有压力全是假的,毕竟是决定一切的比赛了。所以当听到初三、高一的说着“要退役了”,心里很不是滋味。到了现在,也能理解
阅读全文
摘要:【CF1132F】Clear the String(动态规划) 题面 "CF" 题解 考虑区间。 增量考虑,每次考虑最后一个字符和谁一起删去,然后直接转移就行了。 cpp include include include using namespace std; define MAX 505
阅读全文
摘要:【CF1132G】Greedy Subsequences(线段树) 题面 "CF" 题解 首先发现选完一个数之后选择下一个数一定是确定的。 对于每个数预处理出左侧第一个比他大的数,那么这个数加入进来之后的答案都会增加一,拿线段树维护一下就行了。
阅读全文
摘要:【CF1133E】K Balanced Teams(动态规划,单调队列) 题面 "CF" 让你把一堆数选一些出来分成不超过组,每一组里面的最大值和最小值之差不超过,求最多有多少个人元素可以被分组。 题解 设表示把前个数分成组的最多人数。 然后单调队列转移一下
阅读全文
摘要:【CF1139D】Steps to One(动态规划) 题面 "CF" 你有一个数组,每次随机加入一个的数,当所有数为时停止,求数组长度的期望。 题解 设表示为时的答案的期望。 考虑转移就是每次选一个数和求个,那么计算一下变成
阅读全文
摘要:【BZOJ1152】歌唱王国(生成函数,KMP) 题面 "BZOJ" "洛谷" 题解 根据论文来的QwQ。 首先大家都知道普通型生成函数是,类似的定义概率生成函数$\displaystyle F(x)=\su
阅读全文
摘要:【Luogu4396】[AHOI2013]作业(莫队) 题面 "洛谷" 题解 模板题 cpp include include include using namespace std; define MAX 300300 inline int read() { int x=0;bool t=false
阅读全文
摘要:【BZOJ5417】[NOI2018]你的名字(线段树,后缀自动机) 题面 "BZOJ" "洛谷" 题解 首先考虑的做法,对于每次询问的串,暴力在串的上跑,对于每个点记录其被匹配的最大长度,然后把每个被匹配到的点以及它到树根节点的所有节点全
阅读全文
摘要:[ZJOI2019]线段树(线段树) 题面 "洛谷" 题解 首先问题等价于前面每次操作都可能进行修改或者不修改,求所有情况下有标记点的个数。 考虑依次修改操作会产生的影响,把线段树节点进行分类。 这个点和以及其父亲都和修改区间无交:显然这个点的标记不会被修改。 这个点和修改区间无交但父亲和修改区间有
阅读全文
摘要:【CF981F】Round Marriage(二分答案,二分图匹配,Hall定理) 题面 "CF" "洛谷" 题解 很明显需要二分。 二分之后考虑如果判定是否存在完备匹配,考虑定理。 那么如果不合法,假设我们存在一个极小的集合满足连到右侧的点数小于集合大小。因为是极小的,所以删去一个点之
阅读全文