摘要:
题目链接 "luogu P1072 Hankson 的趣味题" 题解 啊,还是noip的题好做 额,直接推式子就好了 $gcd(x,a_0)=a_1=gcd(\frac{x}{a_1},\frac{a_0}{a_1})$ 额....上面这个式子似乎没用,看b的 $lcm(x,b_0)=\frac{x 阅读全文
摘要:
题目链接 "luogu P1446 [HNOI2008]Cards" 题解 题意就是求染色方案 等价类 洗牌方式构成成了一个置换群 然而,染色数限制不能用polay定理直接求解 考虑burnside引理 对于一个置换群其等价类的个数为置换中不动点的平均数 先暴力求出置换中的轮换,然后01背包DP求出 阅读全文
摘要:
题目链接 "bzoj 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式" 题解 后缀排序 求出height之后一段区间[l,r]内,出现r l+1次最长的串是$min(height[i]) l include include const int maxn = 6000 阅读全文
摘要:
题目链接 "bzoj2251 [2010Beijing Wc]外星联络" 题解 求出height数组后 对与一个串的存在性 画出图来好理解一些,emmmmm,我就不画了 height[i+1]的值比height[i]要大,说明后缀i与后缀i 1的子串全部包含在i+1中 嗯,剩下的不好说辣,看代码理解 阅读全文
摘要:
题目链接 "bzoj 1692: [Usaco2007 Dec]队列变换" 题解 首先像贪心 暴力为比较两个相反的串 贪心标准为以该字母开头,向左or向右的子串字典序大小,先弹小的 把串倒着接到串后边,求一边后缀排顺 然后从两端取rank[],比较小的先弹 c++ include include i 阅读全文
摘要:
题目链接 "POJ 1286 Necklace of Beads" 题解 数据范围,不需要推式子 两种置换,旋转与反转 对于旋转置换,共有n种置换,跨度为k的置换轮换的个数为gcd(k,n) 对与反转置换 当n为奇数是有种置换,每种置换包含n/2+1种轮换。 当n是偶数时,如果对称轴过珠子,则存在n 阅读全文
摘要:
题目链接 "POJ 2154 color" 题解 对于一个n元素环染色,先考虑旋转,置换的总数是n个 旋转k个元素后构成的循环数,即轮换数为$gcd(k,n)$ 根据polay定理,方案数为$$\dfrac{1}{n}\sum_{k=1}^nn^{gcd(k,n)}$$ 对与于这个式子可以化为 $$ 阅读全文