传送门


思路

很明显的一个思路:先搞出有多少种珠子,再求有多少种项链。

珠子

考虑这个式子:
\[
S3=\sum_{i=1}^a \sum_{j=1}^a\sum_{k=1}^a [\gcd(i,j,k)==1]
\]
显然可以莫比乌斯反演一波,但这个是对的吗?

当有两个数字相同时只被算了3遍,而三个都相同的只被算了一遍。
\[
S2=\sum_{i=1}^a\sum_{j=1}^a [\gcd(i,j)==1]
\]
显然有\(S1=1\),那么就会得到最终答案:
\[
ans=\frac 1 6 (S3+3S2+2)
\]

项链

既然要求旋转之后不相同,那么自然想到polya定理。

设不同珠子的个数为\(m\),那么可以得到
\[
ans=\frac 1 n \sum_{d|n}f(d)\varphi(\frac n d)
\]
其中\(f(d)\)表示\(d\)个珠子串成项链,使得相邻的不相等的概率,注意不能旋转,且\(f(1)=0\)。

考虑从右往左数第二个是否和从左往右数第一个相同,那么有
\[
f_n=(m-2)f_{n-1}+(m-1)f_{n-2}
\]
边界条件:\(f_1=0,f_2=m(m-1)\)。

可以看出这是个线性齐次XXXX递推式,用特征根可以得到
\[
x_1=-1,x_2=m-1\\
\alpha = m-1,\beta=1
\]
所以得到\(f_d=(m-1)^d+(-1)^d(m-1)\),可以\(O(\log d)\)得到了。

于是\(ans\)似乎也可以很快得到了。

汇总

总结一下算法流程:先整除分块处理出\(m\),然后polya定理搞出答案。

有一个问题:\(\varphi(\frac n d)\)怎么快速算出来?

看大佬的做法,都是先给\(n\)分解质因数,然后\(dfs\)枚举每种组合,一次性把\(\varphi(d)\)全都求出来,复杂度似乎是\(O(n的因数个数)\),也就不超过\(O(\sqrt n)\)。

还有一个问题:\(n\)是模数的倍数时怎么办?

改成\(MOD=mod^2\),就不会出现这种情况了,最后输出答案时好像还要用奇奇怪怪的方法搞一搞。


代码

咕咕咕咕咕咕

以后再写吧。

洛谷P3307 [SDOI2013]项链 [polya定理,莫比乌斯反演]的更多相关文章

  1. 洛谷 P3307 - [SDOI2013]项链(Burnside 引理+数论)

    题面传送门 看到题目我们显然可以将题目拆分成两部分:首先求出有多少个符合要求的珠子 \(c\),这样我们就可以将每种珠子看成一种颜色,题目也就等价于有多少种用 \(c\) 种颜色染长度为 \(n\) ...

  2. 洛谷P2568 GCD (欧拉函数/莫比乌斯反演)

    P2568 GCD 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入 ...

  3. 洛谷P2522 [HAOI2011]Problem b (莫比乌斯反演+容斥)

    题意:求$\sum_{i=a}^{b}\sum_{j=c}^{d}[gcd(i,j)==k]$(1<=a,b,c,d,k<=50000). 是洛谷P3455 [POI2007]ZAP-Qu ...

  4. 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)

    传送门 我们考虑容斥,设$ans(a,b)=\sum_{i=1}^a\sum_{j=1}^b[gcd(a,b)==k]$,这个东西可以和这一题一样去算洛谷P3455 [POI2007]ZAP-Quer ...

  5. 洛谷 P2257 - YY的GCD(莫比乌斯反演+整除分块)

    题面传送门 题意: 求满足 \(1 \leq x \leq n\),\(1 \leq y \leq m\),\(\gcd(x,y)\) 为质数的数对 \((x,y)\) 的个数. \(T\) 组询问. ...

  6. 洛谷3704 [SDOI2017] 数字表格 【莫比乌斯反演】

    题目分析: 比较有意思,但是套路的数学题. 题目要求$ \prod_{i=1}^{n} \prod_{j=1}^{m}Fib(gcd(i,j)) $. 注意到$ gcd(i,j) $有大量重复,采用莫 ...

  7. 洛谷P2257 YY的GCD(莫比乌斯反演)

    传送门 原来……莫比乌斯反演是这么用的啊……(虽然仍然不是很明白) 首先,题目所求如下$$\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=prim]$$ 我们设$f(d)$表示$g ...

  8. 洛谷 P2522 [HAOI2011]Problem b (莫比乌斯反演+简单容斥)

    题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 输入输出格式 输入格式: 第一行一个整数 ...

  9. 洛谷$P$2522 $Problem\ b\ [HAOI2011]$ 莫比乌斯反演

    正解:莫比乌斯反演 解题报告: 传送门! 首先看到这个显然就想到莫比乌斯反演$QwQ$? 就先瞎搞下呗$QwQ$ $gcd(x,y)=k$,即$gcd(\left \lfloor \frac{x}{k ...

随机推荐

  1. centos关机与重启命令

    Linux centos重启命令: 1.reboot   普通重启 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 10 过10分钟自动重启(root用户 ...

  2. ADO.Net笔记整理(一)

    几次装机,Notes已烟消云散,近日因为Node.js死活搞不定,无奈装机,备份好的东东,没想到磁盘扇区出现异常,可能是PE启动盘的病毒,只好将磁盘全部重新分区,恢复数据也懒得恢复了,日积月累关乎将来 ...

  3. Scrapy 框架简介

    Scrapy 框架 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的 ...

  4. 微信小程序onLaunch、onLoad执行生命周期

    原文转载自:微信小程序onLaunch.onLoad执行生命周期 1.需求:先执行App的onLaunch添加验证权限等,再执行Page里的onLoad. 2.问题:还没有等onLaunch执行完成, ...

  5. 分享自己总结的PMP项目管理20个G的资料,本人去年过的pmp认证,过了5A

    版权归作者所有,任何形式转载请联系作者. 我在去年6月拿到的pmp证书,5A的,现在来分享下自己的资料. 这些资料是从我开始学习,到问了很多朋友.老人,到后来报班学习,再到之后做项目管理中总结的很多经 ...

  6. uninitialized_copy()效果试验

    根据<STL源码剖析>这段节选描述,实现如下代码进行测试 #include "2jjalloca.h" #include <vector> #include ...

  7. android studio 报红解决

    /Users/houzhibin/gradle/wrapper/dists/gradle-4.1-all/bzyivzo6n839fup2jbap0tjew/gradle-4.1-all.zip

  8. MAC上有哪些优秀的日常软件| 入门级Mac OS 用户必备软件

    本文整理的网友反馈的MAC上有哪些优秀的日常软件+入门级Mac OS 用户必备软件,感兴趣的朋友可以看看,下载下来试用一样便知实不实用.如有更好的推荐,欢迎留言. MAC上有哪些优秀的日常软件 Tim ...

  9. Maven 学习总结 (六) 之 版本

    版本管理 版本管理是指项目整体版本的演变过程管理.版本控制是指借助版本控制工具(如Subversion)追踪代码的每一个变更. 为了方便团队合作,项目开发过程中,大家应该使用快照版本,快照版本机制促进 ...

  10. CSS 分栏结构

    CSS 固定左侧导航栏 left----左侧菜单 cont -- 实际内容 right  ---右侧附加内容   两栏布局---左侧高度为内容撑开的高度     方法一:[坏处是需要 float]   ...