今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手软,没有告诉具体多项式到底有多少项,只好一个一个暴力枚举,但是这也不现实,于是小编就开始骗分,还一分也没骗着.赛后小编看到的题解,才明白这是一道转进制的题,将十进制转换成m进制,m^0,m^1,m^2这不刚好对应上m进制的单位吗?所得结果刚好就是问题的解.那么用短除法模拟算出m进制下f(m)的每一位…
Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要把它们溶化,Satan就能吸收其精华大增自己的魔力.于是有一天他趁二人不留意,把他们带到了自己的地牢,分别困在了不同的地方.然后Satan念起了咒语,准备炼狱,界时二人都将葬身于这地牢里. 危险!Paris与Helen都知道了Satan的意图,他们要怎样才能打败魔王,脱离地牢呢?Paris想起了父王…
思维 这道题应该算是一道思维题吧. 首先你要想到,既然这是一棵无根树,就要明智地选择根--以第一个黑点为根(不要像我一样习惯性以\(1\)号点为根,结果直到心态爆炸都没做出来). 想到这一点,这题就很简单了. 具体 设\(p_i\)为从\(i\)到根路径上的最小值,考虑一个黑点\(y\)对于\(x\)号点的贡献. 显然这一贡献就是将\(x\)的答案向\(y\)到\(LCA(x,y)\)路径上的最小值取\(min\). 而由于\(LCA(x,y)\)到根路径上的最小值也是\(x\)到根路径上的最小…
我太难了 先说好没有代码T1 题目大意: 给定一些形如|ax+b|的式子,求最小的x使得它们的和最小. 算法一: 大家知道零点分段法 对于这n个式子我们有n+1个取值范围 使得展开这n个式子得到的新式子不同 而对于每一个形成的式子,因为我们有这个x的取值范围,所以我们可以在O(1)的复杂度求出它的最小值. 而我们从最左边的取值范围开始,对于相邻的两个取值范围我们可以用O(1)的复杂度转移,即我们可以用O(n)遍历所有可能形成的n个式子,每个算一下答案即可. 需要注意的是,对于所有a[i]=0,我…
\(2019/8/27\)大考 \(\color{#ff0808}{\text{初二诀别赛(SAD)}}\) 题目名称 链接 寿司 \(BSOJ5111\) 秀秀的森林 \(BSOJ5125\) 分组 \(BSOJ5126\) 入阵曲 \(BSOJ5129\) 将军令 \(BSOJ5130\) 文本编辑器 \(BSOJ5089\) [第一题] \(\color{#0080FF}{\underline{\large{题面}}}\) [简述] 有一个由\(R\)和\(B\)组成的字符串环,每次可以交…
T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) 考虑\(min-max容斥\).\(max\{S\}=\sum_{S \subset T}(-1) ^{|T|-1}min\{T\}\) 此时我们要求的变为了\(min\{T\}\),即\(T\)中至少有一个元素被选择的期望. 我们知道当\(T\)中元素被选择的概率为\(P\)时,其期望为\(\f…
二分 首先,可以发现,最后的答案显然满足可二分性,因此我们可以二分答案. 然后,我们只要贪心,就可以验证了. 贪心 不难发现,肯定会优先选择能提供更多插座的排插,且在确定充电器个数的情况下,肯定选择能经过排插数量最大的那些充电器. 所以,我们只要模拟插排插的过程,记录当前深度\(d\).插座数\(t\)即可. 设选择的能经过排插数量恰好为\(d\)的充电器有\(x\)个,则若\(t<x\),显然不合法. 否则,我们将\(x\)个位置插上充电器,其余位置尽可能地插排插,就可以了. 代码 #incl…
打表+暴搜 这道题目,显然是需要打表的,不过打表的方式可以有很多. 我是打了两个表,分别表示每个数字所需的火柴棒根数以及从一个数字到另一个数字,除了需要去除或加入的火柴棒外,至少需要几根火柴棒. 然后我们就可以暴搜了,大体就是枚举等式左边两个数每一位的值,并枚举中间的运算符是\(+\)还是\(-\),然后计算出等式右边的值,判断是否合法. 中间过程可以加上一些剪枝. 注意当火柴棒从某一位移到另一位时,我们可以规定,去除火柴棒需要算步数,加入火柴棒则无需算步数,这样就可以避免重复了. 具体实现有一…
原题与此题 原题是一道神仙不可做题,两者区别在于,原题不能有重边和自环. 然而,这题可以有重边... 于是这题就变成了一道大水题. 此题的解法 考虑如何构造. 对于\(n\le10^4\)的情况: 对于\(n>10^4\)的情况: 边上的权值表示边数. 代码 #pragma GCC optimize(2) #include<bits/stdc++.h> #define Tp template<typename Ty> #define Ts template<typena…
找环 考虑每次洗牌其实是一次置换的过程,而这样必然就会有循环出现. 因此我们直接通过枚举找出每一个循环,询问时只要找到环上对应的位置就可以了. 貌似比我比赛时被卡成\(30\)分的倍增简单多了? 代码 #include<bits/stdc++.h> #define Tp template<typename Ty> #define Ts template<typename Ty,typename... Ar> #define Reg register #define RI…