不想看题解的请速撤离

  

  为防被骂灌输题解,撤离缓冲区

  这里没字

  $Ploya$神题一道,所以我自己做不出来,颓了一部分题解。

  由于理(颓题)解不(没)深(脸)中途又拿了$std$对拍(输出中间结果并qj了自己的代码)

  但是启示的确很多

  按照题面意思来看,好像是点的交换,但是不是。。本题中的置换其实是边与边的置换

  因为显然颜色是涂在边上的,至于点的交换可以看成接向两个点的边集的交换

  但是归根到底还是先有点动再有边动,所以我们仍然考虑将通过点的置换来求出边的等价置换

  

  发现没有关于颜色使用的限制,所以可以使用$Polya$定理,那么只需要找循环节数量就行了

   考虑一条边在什么时候会循环到自己原来的位置,从换点的角度。

   直观地感到跟点循环的大小有关,比如有一个长度为$L$的点循环,有个边连接其中的两个点

  可以想(猜)到这个点循环里,所有边都是等效的,也就是都在同一次数后循环回来(比如$L$)

  那么一共有$C_L^2$个点对(边),每个边的循环节长度都是$L$

  循环接数量就是$cnt(L)=\frac{C_L^2}{L}=\frac{L*(L-1)}{2*L}=\frac{L-1}{2}$

  然而仔细思考就会发现我上一句话伪了

  因为$L$为偶数时,正对着的边每过$\frac{L}{2}$就回到原来位置了

  改改改

  当$cnt(L)=\frac{\frac{L*(L-2)}{2}}{L}+\frac{L/2}{L/2}=\frac{L-2}{2}+1=\frac{L}{2}  (L$%$2==0)$

  合起来成了$cnt(L)=\lfloor \frac{L}{2} \rfloor$

  这是一个点循环内部的,还有两个循环之间的呢

  考虑一个循环长度为$L1$的点循环和另一个循环长度为$L2$的点循环

   显然当转过$lcm(L1,L2)$次后,原来的两个点又碰到一起了

  仔细思考就会发现上一句话无懈可击

  然后有$L1*L2$个点对,循环节数量$cnt(L1,L2)=gcd(L1,L2)$

  好,现在就是给定一个点的变换的局面,我们知道了这种局面有多少循环节

  然而需要保证点是有序的,然后局面数量阶乘级别了..

  如果点无序好像比较少,试着求出有序情况下的方案数.

  我们假定图的形状一定,然后我们按照位置固定的顺序把图上点的序号一个个按在序列上

  显然这样的话,发生任何点的交换都会使序列不同,也就不担心漏掉了

  目前是$num=n!$,会重,考虑重了多少次

  比如一段长度为$L1$的点循环,在序列上占有一个固定的子序列

  子序列内部,不管怎么循环左右移动这个点循环还是这个循环..

  这种同构,每个循环$i$都有$L_i$种,去重,目前$num=\frac{n!}{\pi L_i}$

  然后点循环之间,相同长度的点循环的子序列一交换,又成了新序列,可是局面是一种局面

  除掉,设长度$j$出现次数为$t_j$,则$num=\frac{n!}{\Pi L_i \Pi t_j!}$

  好了现在只要找到点无序时有哪些方案就行了

  这时候$n$很小的特性就有用了,可以爆搜!

  试着搜一下发现其实合法状态很少,只有3e5左右

  于是这题没了

  

  

  

  其实对于我这种大弱鸡来说,这确乎是个神题..

  虽然颓了题解,可是自己想不到的神仙思路就应该积累不是吗..

  学到了一种数据范围的方案统计技巧

  学到了一种等价类计数的思维方式,转化为较简单的置换再求回来

  学会了如何去重

随机推荐

  1. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?

    线程调度器是一个操作系统服务,它负责为 Runnable 状态的线程分配 CPU 时间. 一旦我们创建一个线程并启动它,它的执行便依赖于线程调度器的实现.同上一个问题,线程调度并不受到 Java 虚拟 ...

  2. Inkscape 旋转并复制

    画一个图形,点击图标. 然后图标中心有个十字叉, 然后把这个十字叉拖到你想要旋转的地方. 然后shift+ctrl+m打开变换菜单. 选择旋转选项卡,然后设置角度,点击应用.就可以旋转了,如果配合ct ...

  3. slf4j输出变量

    花括号表示占位符,推荐使用

  4. What is neural network?

    It is a powerful learning algoithm inspired by how the brain work. Example 1 - single neural network ...

  5. java23种设计模式(二)抽象工厂模式

    我们接着上一章的工厂方法模式继续学习一下抽象工厂模式. 抽象工厂模式:在工厂模式中,如果有多个产品,则就是抽象工厂模式. 例子: 有一个工厂开了两个子公司,专门用来生产电脑配件键盘和鼠标,一个是联想工 ...

  6. 域渗透基础之Windows 2012创建域控制器

    创建备份域控制器 这里就拿windows 2012 R2来当备份域控 如果一个域内有多个域控制器,可以有如下好处. 提高用户登录的效率:如果同时有多台域控制器对客户提供服务,可以分担审核用户登录身份( ...

  7. Centos 7 集成安装Apache+PHP+Kerberos+LDAP+phpLDAPadmin

    一.安装Apache 1.1.安装Apache Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和安全性广泛被认可且拥有快速.可靠.简单的API扩展. 它的名字取自美国印第安人土 ...

  8. 实用---生命游戏 Java

    本程序由四个类组成: 其中Init_data,用于初始化各个活细胞的状态judge_state,用于判断下一代的细胞状态,并进行更新.set_color,用于给GUI界面中各个细胞涂色set_fram ...

  9. i春秋DMZ大型靶场实验(一)内网拓展

    更具提示 先下载工具包 ip  172.16.12.226  打开bp 进行代理发现 整个页面 没有请求 没有其页面通过 御剑,dir ,hscan   进行目录爆破未发现有用信息    对当前页面进 ...

  10. javascript学习总结之对象的深拷贝和浅拷贝

    前言 最近在写ES6的文章的时候发现重复遇到关于javascript深拷贝和浅拷贝的问题,然后查找了一些资料,根据资料和自己的理解做了以下笔记,毕竟javascript关于深拷贝和浅拷贝的问题在一些面 ...