随笔分类 - Source -- 各省省选
摘要:[BJOI2019]光线(递推) 题面 "洛谷" 题解 假装玻璃可以合并,假设前面若干玻璃的透光率是$A$,从最底下射进去的反光率是$B$,当前的玻璃的透光率和反光率是$a,b$。 那么可以得到转移: $$A=A'\sum_{j=0}^\infty B'^j b^j a=\frac{A'a}{1 B
        阅读全文
                
摘要:[BJOI2019]排兵布阵(动态规划) 题面 "洛谷" 题解 暴力dp: 设$f[i][j]$表示考虑到了第$i$座城市用了$j$人的最大收益,枚举在这个城市用多少人就可以了。 优化: 发现用的人数一定是某个敌人的人数的二倍加一,那么决策只有$O(s)$个。 时间复杂度$O(snm)$。(不满) 
        阅读全文
                
摘要:[BJOI2019]勘破神机(斯特林数,数论) 题面 "洛谷" 题解 先考虑$m=2$的情况。 显然方案数就是$f_i=f_{i 1}+f_{i 2}$,即斐波那契数,虽然这里求出来是斐波那契的第$n+1$项,但是本质上没什么区别,就默认是斐波那契数列了。 斐波那契数列的特征根是$\alpha=\f
        阅读全文
                
摘要:[BJOI2019]奥术神杖(分数规划,动态规划,AC自动机) 题面 "洛谷" 题解 首先乘法取$log$变加法,开$c$次根变成除$c$。 于是问题等价于最大化$\displaystyle \frac{\sum val_i}{c}$。典型的分数规划的形式。 二分权值$k$,每个点的点权变成$val
        阅读全文
                
摘要:【BZOJ5507】[GXOI/GZOI2019]旧词(树链剖分,线段树) 题面 "BZOJ" "洛谷" 题解 如果$k=1$就是链并裸题了。。。 其实$k 1$发现还是可以用类似链并的思想,这个东西本质上就是对于当前的一个$x$,考虑对于其他所有点的贡献,而他们的$LCA$一定是$x$到根节点链上
        阅读全文
                
摘要:【BZOJ5506】[GXOI/GZOI2019]旅行者(最短路) 题面 "BZOJ" "洛谷" 题解 正着做一遍$dij$求出最短路径以及从谁转移过来的,反过来做一遍,如果两个点不由同一个点转移过来就更新答案。 cpp include include include include using n
        阅读全文
                
摘要:【BZOJ5505】[GXOI/GZOI2019]逼死强迫症(矩阵快速幂) 题面 "BZOJ" "洛谷" 题解 如果没有那两个$1 1$的东西,答案就是斐波那契数,可以简单的用$dp$得到。 大概是设$f[i]$表示当前除了到第$i$列的方案数,转移是考虑用$2 1$竖着覆盖一列还是$2$个$1 2
        阅读全文
                
摘要:【BZOJ5503】[GXOI/GZOI2019]宝牌一大堆(动态规划) 题面 "BZOJ" "洛谷" 题解 首先特殊牌型直接特判。 然后剩下的部分可以直接$dp$,直接把所有可以存的全部带进去大力$dp$就行了。 发现每多一张牌胡的本质就是把一个刻字换成杠子,所以这两个东西记录在一起就行了。 那么
        阅读全文
                
摘要:【BZOJ5502】[GXOI/GZOI2019]与或和(单调栈) 题面 "BZOJ" "洛谷" 题解 看到位运算就直接拆位,于是问题变成了求有多少个全$0$子矩阵和有多少个全$1$子矩阵。 这两个操作本质就是一样的,不妨考虑有多少个全$1$子矩阵。 预处理出每个元素向上能够找的最多的$1$的个数,
        阅读全文
                
摘要:[ZJOI2019]麻将(动态规划,自动机) 题面 "洛谷" 题解 先做一点小铺垫,对于一堆牌而言,我们只需要知道这$n$张牌分别出现的次数就行了,即我们只需要知道一个长度为$n$的串就可以了。 首先考虑如何判断一副牌是不是能胡。 出现了七对牌的情况很容易特判处理掉,只需要考虑第一种情况。 那么我们
        阅读全文
                
摘要:【BZOJ5499】[2019省队联测]春节十二响(贪心) 题面 "BZOJ" "洛谷" 题解 如果是一条折链,显然维护两侧的值,每次两个堆分别弹出一个$max$然后合并一下,最后再放回去就可以了。 那么现在回到一棵树上,可以认为就是本身有一条链,现在每次要合并一条链进来,那么拿一个堆维护这个合并过
        阅读全文
                
摘要:【BZOJ5498】[十二省联考2019]皮配(动态规划) 题面 "BZOJ" "洛谷" 题解 先考虑暴力$dp$,设$f[i][j][k]$表示前$i$所学校,有$j$人在某个阵营,有$k$人在某个派系的方案数。 发现如果$k=0$,那么可以先决策每个城市选择哪一个阵营,再对于每个学校选择哪一个派
        阅读全文
                
摘要:【BZOJ5496】[十二省联考2019]字符串问题(后缀树) 题面 "BZOJ" "洛谷" 题解 首先显然可以把具有支配关系的串从$A$到$B$连一条有向边,如果$B_i$是$A_j$的前缀,就从$B$连一条边到$A$。这样子问题就转化成了要求解这个二分图的最长路经,有环答案就是$ 1$。 然后显
        阅读全文
                
摘要:【BZOJ5495】[十二省联考2019]异或粽子(主席树,贪心) 题面 "BZOJ" "洛谷" 题解 ~~这不是送分题吗。。。~~ 转异或前缀和,构建可持久化$Trie$。 然后拿一个堆维护每次的最大值,每次如果取了一个数,就把它再在$Trie$树上查一次新建一个元素丢回堆里就行了。 cpp in
        阅读全文
                
摘要:[HNOI2019]校园旅行(bfs) 题面 "洛谷" 题解 首先考虑暴力做法怎么做。 把所有可行的二元组全部丢进队列里,每次两个点分别向两侧拓展一个同色点,然后更新可行的情况。 这样子的复杂度是$O(m^2)$的。 考虑如何优化边数,先说结论: 首先对于一个同色联通块,如果它是一个二分图,那么只需
        阅读全文
                
摘要:[HNOI2019]多边形(模拟,组合计数) 题面 "洛谷" 题解 ~~突然特别想骂人,本来我考场现切了的,结果WA了几个点,刚刚拿代码一看有个地方忘记取模了。~~ 首先发现终止态一定是所有点都向$n$连边(看样例图解就知道了) 那么大力猜想一下第一问的答案一定是$n 3 $和$n$号点直接相连的边
        阅读全文
                
摘要:【Luogu4396】[AHOI2013]作业(莫队) 题面 "洛谷" 题解 模板题 cpp include include include using namespace std; define MAX 300300 inline int read() { int x=0;bool t=false
        阅读全文
                
摘要:[ZJOI2019]线段树(线段树) 题面 "洛谷" 题解 首先问题等价于前面每次操作都可能进行修改或者不修改,求所有情况下有标记点的个数。 考虑依次修改操作会产生的影响,把线段树节点进行分类。 这个点和以及其父亲都和修改区间无交:显然这个点的标记不会被修改。 这个点和修改区间无交但父亲和修改区间有
        阅读全文
                
摘要:【BZOJ4891】[TJOI2017]龙舟(Pollard_rho) 题面 "BZOJ" "洛谷" 题解 看了半天题....就是让你求$\frac{b}{a}$在模$M$意义下的值。。。 首先把$M$分解,把$a,b$中的这些质因子全部分解出来,剩下的部分和$M$互质,直接求逆就行了,分解出来的部
        阅读全文
                
摘要:【BZOJ4890】[TJOI2017]城市(动态规划) 题面 "BZOJ" "洛谷" 题解 数据范围都这样了,显然可以暴力枚举断开哪条边。 然后求出两侧直径,暴力在直径上面找到一个点,使得其距离直径两端点的最大距离最小。 然后我用线段树求的直径,就跑得很快了。 cpp include includ
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号