博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2888 Magic Bracelet
阅读量:4558 次
发布时间:2019-06-08

本文共 399 字,大约阅读时间需要 1 分钟。

置换问题的关键在于降低枚举置换的复杂度和找不动点的复杂度。

和基础的置换不同在于每个环内部不能无脑填相同的颜色了。

但是枚举环还是基本思路一定是要枚举的。

考虑降低枚举置换的复杂度:

环只和gcd有关,枚举gcd一起统计。

把上面的换成下面的。枚举gcd

由于根号的分解不是满的,所以复杂度会降低。

 

 对于每个置换的不动点个数:

即每隔i个都相等。

所以直接分成i条,然后矩阵快速幂优化dp即可。

转移矩阵的i次幂算出来,

再枚举第一个填j颜色,对应乘起来就是整个第j行的值,选择不会和最后一个冲突的值加起来即可。

O(10^3logn*sqrt(n))

可以过。

 

启示我们,不动点的个数不一定要按照环来统计

也可以每i个看成一个段来统计

置换相同的一起枚举。考虑环,不动点在条件下进行计算。

 

转载于:https://www.cnblogs.com/Miracevin/p/10221881.html

你可能感兴趣的文章
搬运工程 启动!
查看>>
局部加权回归(LWR) Matlab模板
查看>>
Connect to the DSP on C6A8168/DM8168/DM8148 using CCS
查看>>
hibernate在使用getCurrentSession时提示no session found for current thread
查看>>
【Luogu1471】方差(线段树)
查看>>
DEV中svg图标的使用
查看>>
Codefroces Gym101572 I.Import Spaghetti-有向图跑最小环输出路径(Floyd)
查看>>
有关位运算的操作+二进制状态压缩
查看>>
Eclipse插件 -- 阿里巴巴扫描编码规插件
查看>>
(1.1)学习笔记之mysql体系结构(内存、进程、线程)
查看>>
markdown测试
查看>>
Java-Maven-Runoob:Maven 依赖管理
查看>>
杂项-Log:log4net
查看>>
杂项-Java:EL表达式
查看>>
tarroni music
查看>>
unity 使用RotateAround的使用注意
查看>>
[SDOI2009]HH的项链
查看>>
CodeFirst模式,容易引发数据迁移问题(不建议使用)
查看>>
jquery的colorbox关闭并传递数据到父窗
查看>>
使用Nginx、Keepalived构建文艺负载均衡
查看>>