题面 这种换来换去的东西很容易想到置换群那一套,然后题目甚至还暗示了二进制=.= 直接换的话显然是$2^{a+b}$次,但是一个循环节里可以少换一次,然后问题就变成了数循环节 在一个循环节里的位置有什么特征?用二进制表示位置,那么他们的位置可以通过循环左移a位/循环右移b位互相表示,然后问题就变成了:在左移a位/右移b位的置换群作用下,在a+b个01构成的环里找等价类.仍然不好做,因为现在直接Burnside做不出来,Polya又还没法做,继续转换 我们把每$gcd(a,b)$个数缩成一个,也就…
题目链接:http://www.spoj.com/problems/TRANSP2/ 题意: 思路:不妨设a=1,b=2, 我们发现(001,010,100)组成一个置换,(011,110,101)组成一个置换.那么对于同一个置换中元素,设置换大小为x,则需要x-1次交换.因此,我们若找到循环节的个数K,那么答案即为2^(a+b)-K. a+b个珠子的项链,每个珠子可以用两种颜色涂色,通过每次左移a个珠子得到的相同的视为相同.求不同项链的个数.问题就转化成这个.设g=Gcd(a,a+b),则置换…
这题目就比较有趣了. 大概题目中介绍了一下计算机的储存方法,给一个$2^a*2^b$的矩阵. 求转置.但是只能交换两个数,求所需要的步数. 首先可以把变化前后的位置写出来,构成了许多的循环.左转将狼踩尽博客 然后就是求循环的个数了. 发现循环都是左移形成的,可以直接计算本质不同的串的个数. (这里用到一个小优化,把最小的循环节找出来可以简化问题,这样子可以变成循环任意多次,就能用欧拉函数了) 然后就是一顿模板 (POJ2154) 然后交上去 TLE. SPOJ太慢了 1s跑不过40w的$nsqr…
题意: 给出a.b 表示按先行后列的方式储存矩阵 现在要将其转置 可以交换两个点的位置 求最小操作次数 题解: 储存可以将其视为拉成一条链 设a=5.b=2 则在链上坐标用2^***(a,b)表示为(xxxxxyy) 转置后为(yyxxxxx) 这时将其视为另一个点的坐标 继续转置为(xxyyxxx)... 直到再变成(xxxxxyy)这样每次循环可以节省1次转置 所以ans=2^(a+b)-k k为循环的个数k的计算:右移b位 右移b*2位 右移b*3位... 构成了一个置换群 置换个数为(a…
题目一 : SPOJ 375 Query On a Tree http://www.spoj.com/problems/QTREE/ 给一个树,求a,b路径上最大边权,或者修改a,b边权为t. #include <cstdio> #include <iostream> #include <cstring> #include <cstdlib> #include <algorithm> using namespace std; + ; ; ]; s…
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 拼接出每一列的字符串 日期 题目地址:https://leetcode-cn.com/problems/valid-word-square/ 题目描述 Given a sequence of words, check whether it forms a valid word square. A sequence of words forms a va…
Array Diversity Time Limit:404MS     Memory Limit:0KB     64bit IO Format:%lld & %llu   Description Here we go! Let's define the diversity of a list of numbers to be the difference between the largest and smallest number in the list. For example, the…
Goblin Wars Time Limit:432MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Description The wizards and witches of Hogwarts School of Witchcraft found Prof. Binn's History of Magic lesson to be no less boring than you found your own history cla…
Save the Students Time Limit:134MS     Memory Limit:0KB     64bit IO Format:%lld & %llu   Description Hogwarts is under attack by the Dark Lord, He-Who-Must-Not-Be-Named. To protect the students, Harry Potter must cast protective spells so that those…
题面 按列高建立笛卡尔树,转成树上问题...... 笛卡尔树是什么? 它一般是针对序列建立的,是下标的BST和权值的堆(即中序遍历是原序列连续区间,节点权值满足堆性质),这里不讲具体怎么建树(放在知识总结里了).我们想一想对于一个序列建出来的树长啥样(灵魂画师上线辣) 也就是说树上一个节点对应原图上一个矩形区域,这样我们就把原序列转成了一个组合问题.设$dp[i][j]$表示以$i$为根的子树的区域里放了$j$个车的方案数,那么先是子树里的放法.呃,这不就是树形背包吗...转移不写了 然后考虑在…