摘要:
【题目】D. Power Tower 【题意】给定长度为n的正整数序列和模数m,q次询问区间[l,r]累乘幂%m的答案。n,q<=10^5,m,ai<=10^9。 【算法】扩展欧拉定理 【题解】扩展欧拉定理的形式: $$a^b\equiv a^{b\%\varphi(p)+\varphi(p)} \ 阅读全文
摘要:
【题意】给定n个点的树,每条边有一个小写字母a~v,求每棵子树内的最长回文路径,回文路径定义为路径上所有字母存在一种排列为回文串。n<=5*10^5。 【算法】dsu on tree 【题解】这题经典套路就是按照22个字母个数的奇偶性压位,然后两段路径异或起来是0或1<<j就是合法路径。 dsu的时 阅读全文
摘要:
【题目】E. Lomsat gelral 【题意】给定n个点的树,1为根,每个点有一种颜色ci,一种颜色占领一棵子树当且仅当子树内没有颜色的出现次数超过它,求n个答案——每棵子树的占领颜色的编号和Σci(一棵子树可能有多种占领颜色)。1<=n,ci<=10^5。 【算法】dsu on tree 【题 阅读全文
摘要:
【题意】给定k<=123,a,n,d<=10^9,求: $$f(n)=\sum_{i=0}^{n}\sum_{j=1}^{a+id}\sum_{x=1}^{j}x^k$$ 【算法】拉格朗日插值 【题解】参考:拉格朗日插值法及应用 by DZYO 虽然式子很复杂,但一点一点化简有条理的化简后就可以做了 阅读全文
摘要:
【题意】一个序列$a_1,...,a_n$合法当且仅当它们都是[1,A]中的数字且互不相同,一个序列的价值定义为数字的乘积,求所有序列的价值和。n<=500,A<=10^9,n+1<A<mod<=10^9,mod是素数。 【算法】动态规划+拉格朗日插值 【题解】这道题每个数字的贡献和序列选了的数字积 阅读全文
摘要:
【题目】F. Substrings in a String 【题意】给定小写字母字符串s,支持两种操作:1.修改某个位置的字符,2.给定字符串y,查询区间[l,r]内出现y多少次。|s|,Σ|y|<=10^5,time=6s。 【算法】Bitset 【题解】假设S的长度为n,那么对每个字符建一个长度 阅读全文
摘要:
【题意】求n个点的带标号无向连通图个数 mod 1004535809。n<=130000。 【算法】动态规划+多项式求逆 【题解】设$g_n$表示n个点的无向图个数,那么显然 $$g_n=2^{\frac{n(n-1)}{2}}$$ 设$f_n$表示n个点的无向连通图个数,通过枚举1号点所属连通块大 阅读全文
摘要:
【题意】[COGS 2287][HZOI 2015]疯狂的机器人 【算法】FFT+卡特兰数+排列组合 【题解】先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式。 设C(n)表示第n/2个卡特兰数,当n为奇数时为0,即: $$C_n=\binom{n}{\frac{n}{2}}- 阅读全文
摘要:
【题意】给定只含'a'和'b'字符串S,求不全连续的回文子序列数。n<=10^5。 【算法】FFT+回文串 【题解】不全连续的回文子序列数=回文子序列总数-回文子串数。 回文子串数可以用回文串算法(Manacher,PAM,二分+hash)轻松计算。 设f[i]表示以i为对称中心的对称字符对数,那么 阅读全文
摘要:
【题目】F - Leftmost Ball 【题意】给定n种颜色的球各k个,每次以任意顺序排列所有球并将每种颜色最左端的球染成颜色0,求有多少种不同的颜色排列。n,k<=2000。 【算法】计数DP 【题解】只看黑体字部分即可。 自己考虑了几种计数方案,都不能实现。一种从左到右,但要记录每种球剩余多 阅读全文
摘要:
【题意】给定长度为m的匹配串B和长度为n的模板串A,求B在A中出现多少次。字符串仅由小写字母和通配符" * "组成,其中通配符可以充当任意一个字符。n<=3*10^5。 【算法】FFT 【题解】假设模板串的数组A用0~26代表所有字符,0为通配符,匹配串的数组B同理,那么用表示差异的经典套路: $$ 阅读全文
摘要:
【题目】D. Huffman Coding on Segment 【题意】给定n个数字,m次询问区间[l,r]的数字的哈夫曼编码总长。1<=n,m,ai<=10^5。 【算法】哈夫曼树+莫队+分块 【哈夫曼树】哈夫曼树又称最优构造树,n个数字的哈夫曼树是含有n个给定权值叶子的点权路径和最小的二叉树。 阅读全文
摘要:
【题目】F - Many Easy Problems 【题意】给定n个点的树,定义S为大小为k的点集,则f(S)为最小的包含点集S的连通块大小,求k=1~n时的所有点集f(S)的和取模924844033。n<=2*10^5。 【算法】排列组合+NTT 【题解】考虑每个点只会在k个点都在其一个子树时无 阅读全文
摘要:
【题目】F - Yakiniku Restaurants 【题意】给定n和m,有n个饭店和m张票,给出Ai表示从饭店i到i+1的距离,给出矩阵B(i,j)表示在第i家饭店使用票j的收益,求任选起点和终点的最大(收益-代价)。n<=5000,m<=200。 【算法】单调栈+矩阵差分 【题解】直接枚举区 阅读全文
摘要:
【题目】E - Symmetric Grid 【题意】给定n*m的小写字母矩阵,求是否能通过若干行互换和列互换使得矩阵中心对称。n,m<=12。 【算法】模拟 【题解】首先行列操作独立,如果已确定行操作,那么两个在对称位置的列要满足条件必须其中一列反转后和另一列相同,或m为奇数且此列在中间。 已确定 阅读全文
摘要:
【题意】n位同学(其中一位是B神),m门必修课,每门必修课的分数是[1,Ui]。B神碾压了k位同学(所有课分数<=B神),且第x门课有rx-1位同学的分数高于B神,求满足条件的分数情况数。当有一位同学的一门必修课分数不同时视为两种情况不同。n,m<=100,Ui<=10^9。 【算法】计数DP+排列 阅读全文
摘要:
【题目】F. k-substrings 【题意】给定长度为n的串S,对于S的每个k-子串$s_ks_{k+1}...s_{n-k+1},k\in[1,\left \lceil \frac{n}{2} \right \rceil]$,找到满足[奇数长度][严格子串][同时是前缀和后缀]的最长子串。n< 阅读全文
摘要:
【题目】G. Partitions 【题意】n个数$w_i$,每个非空子集S的价值是$W(S)=|S|\sum_{i\in S}w_i$,一种划分方案的价值是所有非空子集的价值和,求所有划分成k个非空子集的方案的价值和。1<=k<=n<=2*10^5,1<=wi<=10^9。 【算法】斯特林数 【题 阅读全文
摘要:
【题意】给定m*n的整数矩阵,求经过所有点至多一次路径的最大数值和。n<=8,m<=100。 【算法】插头DP 【题解】最小表示法确实十分通用,处理简单路径问题只需要状态多加一位表示独立插头的数量0~2(即路径端点),转移的时候多考虑凭空产生独立插头和结尾为独立插头的情况即可。 可以跳格的情况直接转 阅读全文
摘要:
【题意】给定n*m的地板,有一些障碍格,要求用L型的方块不重不漏填满的方案数。L型方块是从一个方格向任意两个相邻方向延伸的方块,不能不延伸。n*m<=100。 【算法】插头DP 【题解】状态0表示无插头,1表示能拐弯的插头,2表示不能拐弯的插头。(有插头,方块就必须必须延伸到该格),考虑转移即可。 阅读全文