水平越来越菜了A 水题,注意后面全是1的情况B 调和级数呀。把倍数全部扫一遍。一个数是多个数的倍数的话肯定是大的比较优。然后可以用two pointer扫一下。C 就是一个置换群,把轮换找出来就好了。傻逼的写了好久。D 有意思的傻逼DP,容易得到dp[i] = max{dp[j] + max{abs...
分类:
其他好文 时间:
2015-01-05 01:51:24
阅读次数:
222
http://www.lydsy.com/JudgeOnline/problem.php?id=1004学习了下polya计数和burnside引理,最好的资料就是:《Pólya 计数法的应用》 --陈瑜希burnside:$$等价类的个数=\frac{1}{|G|}\sum_{i=1}^{s}D(...
分类:
其他好文 时间:
2014-11-22 13:10:24
阅读次数:
196
1.找出初始状态和目标状态。明显,目标状态就是排序后的状态。
2.画出置换群,在里面找循环。例如,数字是8 4 5 3 2 7,目标状态是2 3 4 5 7 8,能写为两个循环:(8 2 7)(4 3 5)。
3.观察其中一个循环,明显地,要使交换代价最小,应该用循环里面最小的数字2,去与另外的两个数字,7与8交换。这样交换的代价是:
sum - min + (len - 1) * min
...
分类:
其他好文 时间:
2014-11-01 17:54:02
阅读次数:
107
首先,中心点是可以直接算出来的
把所有的坐标相加再除n就可以
然后枚举一个不靠近中心的点,枚举它绕中心点旋转的角度,只要枚举50次就可以了
计算出当前枚举的的角度是否能形成一个置换群
计算循环节,再用polya定理算个数
#pragma comment(linker, "/STACK:102400000,102400000")
#include
#include
#include
#...
分类:
其他好文 时间:
2014-10-24 19:03:13
阅读次数:
423
题目大意:给定n张卡牌和m个置换,求等价类个数
数据保证这m个置换加上自身置换后构成一个置换群
BZOJ坑爹0.0 这么重要的条件不给出来尼玛怎么做
Burnside引理……昨晚为了做这题硬啃了一晚上白书0.0 都快啃吐了0.0
Burnside引理:一个置换群下的等价类个数等于所有置换的不动点个数的平均值
没有接触过群论的建议去啃白书…… 网上的东西看不懂的
最后那个除法要用乘法逆元...
分类:
其他好文 时间:
2014-10-17 09:24:04
阅读次数:
261
有点置换群的味道。当撞开一个门后,能打开一连串的门,即是可以排成一个圈。求的是种数,于是,可以使用第一类斯特林数,求出撞了0~K次的种数。但是,注意,当第一个门为独自一个圈时,是不可行的,因为这代表第一个门要撞开,这违犯规则。所以,把第一个门独立成圈的情况去掉。即是求出S(N-1,K-1)以前的各种...
分类:
其他好文 时间:
2014-10-12 16:56:18
阅读次数:
164
大概写一下之前写或是没有写,但总之没有过的题目p1002 动规不太会p1003 没思路p1005 忘了为什么wa和T了p1006 貌似题目没有讲清楚,不是很理解为什么裸spfa不可以p1008 打算学习了置换群之后再写p1009 莫名wa一个点,求同余方程,扩展欧几里德p1012 看起来是个很水的题...
分类:
其他好文 时间:
2014-09-28 02:40:50
阅读次数:
188
用了一点群论中的置换群的知识,仅是一点,找出循环节,取模即可。初次接触群论,等做完余下一点东西后就系统一点学习组合数学的内容#include #include #include #include using namespace std;int n;int chan[210];int partic[2...
分类:
其他好文 时间:
2014-09-17 11:56:22
阅读次数:
151