置换
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 · 353 阅读 · 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 · 185 阅读 · 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 · 242 阅读 · 0 评论 -
牛客IOI周赛18-提高组 A 排列(置换,倍增)
题目描述牛牛拿到了一个长度为N的排列和M个区间,一开始排列是1、2、3…N。然后他将这些区间在按顺序在排列上翻转,全部翻转一遍称一次操作。现在他要去搞文化了…所以拜托你告诉他经过K次操作后的排列长什么样子。输入描述:第一行三个整数:N,M,K。接下来M行,每行两个整数L和R描述一个区间。输出描述:输出一行N个数,表示经过K次操作后的排列。示例1输入复制5 2 21 42 3输出复制1 2 3 4 5说明排列1 2 3 4 5中,区间[1 , 4]和[2 , 3]翻转后,原创 2020-09-18 17:37:47 · 198 阅读 · 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 · 237 阅读 · 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 · 299 阅读 · 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 · 452 阅读 · 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 · 447 阅读 · 0 评论