置换
tdm
tomjobs
别慌,慌也没用
展开
-
Codeforce-1459 E. Latin Square(置换,有意思的构造)
题意: 如图6种操作,求最终序列 思路: 将数组的变换转换为三元组的变换 设三元组初始为(i,j,a[i][j])(i,j,a[i][j])(i,j,a[i][j]) 则(i,j,a[i][j])(i,j,a[i][j])(i,j,a[i][j])在进行下面的操作后变换为 L:(i,j−1,a[i][j])L:(i,j-1,a[i][j])L:(i,j−1,a[i][j]) R:(i,j+1,a[i][j])R:(i,j+1,a[i][j])R:(i,j+1,a[i][j]) U:(i−1,j,a[i][原创 2020-12-26 16:26:43 · 340 阅读 · 1 评论 -
2020 CCPC Wannafly Winter Camp DAY6 K重排列(置换,DP)
思路: K一定是排列中所有环长度的公倍数,所以枚举K中小于等于nnn的因数,然后进行转移。 定义dp[i]dp[i]dp[i]为选择了长度为iii排列的方案数,则有dp[i]=∑dp[i−j]∗C(i−1,j−1)∗fac[now−1],j∣kdp[i]=∑dp[i-j]*C(i-1,j-1)*fac[now-1],j|kdp[i]=∑dp[i−j]∗C(i−1,j−1)∗fac[now−1],j∣k。 #include <cstdio> #include <cstring> #i.原创 2020-12-26 00:01:10 · 172 阅读 · 0 评论 -
J - Jumping frog Gym - 101889J(gcd,置换)
题意: R可与走,P不可以走。 可以任选起点,每步的长度为k。 求问存在多少k,使得你最后可以跳回起点。 从i跳一步后会变成(i+k)%n 思路: 感觉和之前写过的置换很像,也是在环上跳。 对于所跳的步长k,如果gcd(n,k)=1,那么实际就是要遍历每一个点,必须得满足所有点都是R。 否则的话,最终要跳n∗k/gcd(n,k)/k=n/gcd(n,k)n*k/gcd(n,k)/k=n/gcd(n,k)n∗k/gcd(n,k)/k=n/gcd(n,k)步。这个部分的个数等于n的约数的个数,不会很多。 所以我原创 2020-10-28 12:49:09 · 230 阅读 · 0 评论 -
牛客IOI周赛18-提高组 A 排列(置换,倍增)
题目描述 牛牛拿到了一个长度为N的排列和M个区间,一开始排列是1、2、3…N。 然后他将这些区间在按顺序在排列上翻转,全部翻转一遍称一次操作。 现在他要去搞文化了…所以拜托你告诉他经过K次操作后的排列长什么样子。 输入描述: 第一行三个整数:N,M,K。 接下来M行,每行两个整数L和R描述一个区间。 输出描述: 输出一行N个数,表示经过K次操作后的排列。 示例1 输入 复制 5 2 2 1 4 2 3 输出 复制 1 2 3 4 5 说明 排列1 2 3 4 5中,区间[1 , 4]和[2 , 3]翻转后,原创 2020-09-18 17:37:47 · 186 阅读 · 0 评论 -
Codeforces1327 D. Infinite Path(置换)
You are given a colored permutation ????1,????2,…,????????. The ????-th element of the permutation has color ????????. Let’s define an infinite path as infinite sequence ????,????[????],????[????[????]],????[????[????[????]]]… where all elements have same原创 2020-09-03 16:43:38 · 225 阅读 · 0 评论 -
2020牛客多校第五场 Bogo Sort(置换)
题意: 置换方式为c[i]=a[b[i]]c[i]=a[b[i]]c[i]=a[b[i]],a为初始数字,b为置换数组。 给你初始b数组,求存在多少个a数组经过一些置换可以变成有序数组。 思路: 第二场的时候也出了个置换题,只不过是给你初始序列和最终序列,求置换数组,而且置换方程为c[i]=b[a[i]]c[i]=b[a[i]]c[i]=b[a[i]] 本题置换方式不同,但想法差不多,都得找环。而本题只是求排列[1,2,3,4,5...][1,2,3,4,5...][1,2,3,4,5...]可以置换成多少原创 2020-07-26 11:31:58 · 285 阅读 · 0 评论 -
J.Just Shuffle2020(模拟,置换) 牛客暑期多校训练营(第二场)
题意: 按照c[i]=b[a[i]]c[i]=b[a[i]]c[i]=b[a[i]]进行置换,给你起点排列和终点排列,置换了k次,求置换排列 思路: 模拟枚举环上节点,然后置换数组就对应p[b[i]]=b[i+1]p[b[i]]=b[i+1]p[b[i]]=b[i+1],相当于在环上后移一位。 是道原题,详解可以看: https://blog.csdn.net/tomjobs/article/details/107332494 只不过那道题是 a[1],a[2],a[3]…变成1,2,3,4,5… 这道题.原创 2020-07-14 10:36:19 · 439 阅读 · 0 评论 -
ICPC NEAU Programming Contest 2020 E. 随便置换(模拟枚举环,置换)
打完这场比赛这道题也只有下面这一篇题解: https://blog.csdn.net/Long_hen/article/details/106663880 然后苦思冥想还是不得道。 昨天牛客多校竟然出了道原题(所以秒了),借此机会来彻底搞懂一下这玩意。 貌似和离散数学中的置换群有关,但是本题不需要,你甚至可以把本题就当做模拟。 思路: 题目意思是 a[1],a[2],a[3],...,a[n]a[1],a[2],a[3],...,a[n]a[1],a[2],a[3],...,a[n]置换成 1,2,3,….原创 2020-07-14 10:22:48 · 432 阅读 · 0 评论