摘要: 题解 置换群的快速幂,然而我姿势水平不高,样例过不去,然后才明白这个置换的意思是这个位置上的数代表要把原位置的某个数换过来 需要新开一个数组存结果 代码 cpp include include include include include include include include inclu 阅读全文
posted @ 2018-05-15 19:30 sigongzi 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题解 用到一点群论的知识! 我们发现把操作写成一个置换后,一定是单个置换圈的内进行操作,把置换圈进行扩大的操作不优 我们有两个办法,一个是用全局最小的换进来,代替这个圈里最小的值,交换操作完成后再换出去,二是用圈里最小的换完一圈 就两个操作,计算后贪心即可 代码 cpp include includ 阅读全文
posted @ 2018-05-15 18:16 sigongzi 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题解 群论,我们只要找出所有的置换群的所有循环节 具体可参照算法艺术与信息学竞赛 旋转的置换有n个,每一个的循环节个数是gcd(N,i),i的范围是0到N 1 翻转,对于奇数来说固定一个点,然后剩下的交换,循环节个数是(N 1)/2 +1 对于偶数来说,不经过球的有N/2个,循环节个数是(N / 2 阅读全文
posted @ 2018-05-15 17:39 sigongzi 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题解 这道题让我对SG函数有了更深刻的理解,这是道打表找规律题 我们打出来SG函数似乎是 1 2必败 3 5必败 4 7必败 6 10必败 8 13必败 哇我找到规律了…… 然而,我显然不会通项 后来百度题解这个东西是威佐夫博弈,前面东西的通项是 $\lfloor \frac{\sqrt{5} + 阅读全文
posted @ 2018-05-15 15:16 sigongzi 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题解 感觉挺神奇的 我们把石子从后往前相邻的两个两两配对,这样他们之间的空格就相当于一堆石子 而配对后左边棋子移动,右边棋子也一定可以跟上取 转化成简单的nim游戏,最后只要看转化出的这(N 1)/2 + 1堆石子异或起来等于0 代码 阅读全文
posted @ 2018-05-15 14:18 sigongzi 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题解 想去学习一下博弈论的SG函数 不过貌似这道题就是猜结论并且证明 题意是,随便选择一堆石子,扔掉至少一个,然后从扔石子的这堆里选择任意多(可以不选)放到其他任意多的未选择完的石堆里 一堆石子,先手必胜 两堆石子,如果两堆石子相同,那么后手必胜,先手一定会使两堆不同,那么后手把两堆恢复相同,最后先 阅读全文
posted @ 2018-05-15 10:54 sigongzi 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题解 把直线的斜率分解成二维,也就是随着z的增加x的增量和y的增量 我们发现一条合法直线向上移一点一定能碰到一条横线 知道了这条横线可以算出y的斜率 我们旋转一下,让这条横线碰到两条竖线,就可以算出x的斜率,进而判断直线在不在平面内 代码 cpp include include include in 阅读全文
posted @ 2018-05-15 09:05 sigongzi 阅读(166) 评论(0) 推荐(0) 编辑