首页 > 其他分享 >SP422 TRANSP2 - Transposing is Even More Fun

SP422 TRANSP2 - Transposing is Even More Fun

时间:2023-05-14 19:33:20浏览次数:47  
标签:Even gcd 二进制 SP422 TRANSP2 个数 sqrt 旋转 More

题面传送门

我的群论好拉/kk

首先如果直接对着矩阵转置做显然不太能做,再加上它给出的是二的幂次,所以我们可以考虑从二进制下手。

写成二进制以后它的变化方式就明朗的多:将一个长度为 \(a+b\) 的二进制数循环位移 \(a\) 位。

众所周知这种交换题最小次数是 \(n-\) 环的个数,因此我们只需要求出环的个数即可。

这相当于求本质不同的二进制串数量,不妨令 \(\gcd(a,b)=1\),考虑 Burnside 引理,我们只需要求出这样旋转 \(0\sim a+b-1\) 次的不动点个数即可。

这个问题再度抽象起来,但是我们考虑,这样旋转总共只能旋转出 \(a+b\) 种本质不同的串,而现在旋转的这些次数中不可能有本质相同,因此每种旋转唯一对应了向右循环 \(i\) 位。

那么事情就变得简单起来,答案即为 \(\sum\limits_{i=0}^{a+b-1}{m^{\gcd(a+b,i)}}\),其中 \(m=\gcd(a,b)\),这里面的 \(a,b\) 是最初的 \(a,b\) ,计算式中的 \(a,b\) 是互质的 \(a.b\)。然后枚举 \(\gcd\) 可以得到 \(\sum\limits_{d\mid n}{m^{d}\varphi(\frac{n}{d})}\),就可以 \(O(\sqrt {a+b})\) 单组询问了。

因此总复杂度 \(O(T\sqrt {a+b})\)

submission

标签:Even,gcd,二进制,SP422,TRANSP2,个数,sqrt,旋转,More
From: https://www.cnblogs.com/275307894a/p/17399962.html

相关文章

  • event 和 this 的区别
    event和this的区别事件对象event​ 定义:包含事件相关信息的对象;这个事件例有事件触发时的相关信息​ 用于记录:哪个标签触发了该事件、哟用户按下哪个键触发该事件、鼠标位置event.target指的是所记录的事件对象环境对象this​ 定义:环境对象指的是函数内部特殊的......
  • QAbstractEventDispatcher 抽象事件分发类
     QAbstractEventDispatcherQAbstractEventDispatcher是一个抽象事件分发类,提供了一个事件循环,并将事件分发给相应的对象。主要职责有:1.管理一个事件循环,接收各种事件并分发2.提供注册,注销事件等接口3.处理定时器,到期后触发timeout信号4.处理异步信号连接,将其包装为事件......
  • A User Account Restriction Is Preventing You From Logging On
    AUserAccountRestrictionIsPreventingYouFromLoggingOn Theerrormessage"Youcannotloginduetoaccountrestrictions"isdisplayedwhenyoulogintothesystemusingtheremotedesktopfunction.Thisisbecau......
  • 协程,gevent模块
    多进程,每启动一个程序单开一块空间,单分配一些资源多线程,在一个进程里面开多个线程,让多个线程同时工作,操作系统控制线程对IO操作阻塞感知能力强多协程,在一个线程,跑多个任务,程序控制协程程序是别人写好的模块,所以感知IO操作阻塞能力差gevent可以实现,当函数遇到IO操作(阻......
  • Added non-passive event listener to a scroll-blocking 'mousewheel' event. Consid
    这个警告意味着在事件监听器中,添加了一个阻止页面滚动的`mousewheel`事件,但是该事件监听器并没有标记为被动事件监听器(passiveeventlistener)。这可能会导致页面滚动变得不流畅,特别是在移动设备上。为了解决这个问题,您需要将事件监听器标记为被动事件监听器。具体实现方法如下......
  • oracle 开启tnsping trace、sqlnet trace 、event10257
    在sqlnet.ora文件中加入以下参数:TNSPING.TRACE_LEVEL=SUPPORTTNSPING.TRACE_DIRECTORY=d:\oracle\trace“tnsping”工具的预期用途仅仅是测试OracleNet别名中指定的数据库侦听器是up还是down。“tnsping”工具不打算用作OracleNet性能测量工具B.Sql*nettraceSE......
  • Event Tables for Efficient Experience Replay
    Abstract事件表分层抽样(SSET),它将ER缓冲区划分为事件表,每个事件表捕获最优行为的重要子序列。我们证明了一种优于传统单片缓冲方法的理论优势,并将SSET与现有的优先采样策略相结合,以进一步提高学习速度和稳定性。在具有挑战性的MiniGrid域、基准RL环境和高保真赛车模拟器中的实......
  • 「USACO2016JAN」Subsequences Summing to Sevens
    [USACO16JAN]SubsequencesSummingtoSevensS题目描述FarmerJohn's\(N\)cowsarestandinginarow,astheyhaveatendencytodofromtimetotime.EachcowislabeledwithadistinctintegerIDnumbersoFJcantellthemapart.FJwouldliketota......
  • spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)
    关键字:spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)应用场景:很多时候我们想要在某个类加载完毕时干某件事情,但是使用了spring管理对象,我们这个类引用了其他类(可能是更复杂的关联),所以当我们去使用这个类做事情时发现包空指针错误,这是因为我们......
  • Uncaught TypeError: f.__fbeventsModules[a] is not a function at f.__fbeventsM
    UncaughtTypeError:f.__fbeventsModules[a]isnotafunctionatf.__fbeventsModules.f.getFbeventsModules怎么了这个错误通常是因为代码中使用了Facebook的跟踪代码,但是在加载该代码之前,代码中尝试访问跟踪模块。这个错误有几种可能的原因:Facebook跟踪代码没有正......