题目链接:点击查看

题目大意:给出一个置换 B,求出一个置换 A ,使得 ,k 是一个大质数

题目分析:等式两边同时乘以 t 次幂,变为 ,显然当 t 为 k 的逆元时,有式子 ,所以求一下 B 的 t 次幂就好了

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<cassert>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=1e5+100;int a[N],ans[N];bool vis[N];int main()
{
#ifndef ONLINE_JUDGE
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);int n,k;scanf("%d%d",&n,&k);for(int i=1;i<=n;i++)scanf("%d",a+i);for(int i=1;i<=n;i++){if(vis[i])continue;vector<int>circle;int pos=i;while(!vis[pos]){circle.push_back(pos);vis[pos]=true;pos=a[pos];}int sz=circle.size();int t=0;while(t<sz){if(1LL*t*k%sz==1)break;t++;}for(int i=0;i<sz;i++)ans[circle[i]]=circle[(i+t)%sz];}for(int i=1;i<=n;i++)printf("%d ",ans[i]);return 0;
}

牛客多校2 - Just Shuffle(置换群的幂)相关推荐

  1. 牛客多校三 B Black and white

    牛客多校三 B Black and white 在n*m的棋盘上,每个格子有一个数,初始可以选一定的格子标记为黑色,在任意四个形如(i1, j1)(i1, j2)(i2, j1)(i2, j2)的格子 ...

  2. 2019牛客多校第一场

    2019牛客多校第一场 题号 题目 知识点 A Monotonic Matrix B Symmetric Matrix C Fluorescent 2 D Two Graphs E Removal F ...

  3. LCS(2021牛客多校4)

    LCS(2021牛客多校4) 题意: 让你构造三个字符串s1,s2,s3,长度均为n,要求LCS(s1,s2)=a,LCS(s2,s3)=b,LCS(s1,s3)=c 题解: 先考虑三个串互相LCS为 ...

  4. 24dian(牛客多校第三场)

    24dian(牛客多校第三场) 题意: 给你n张牌,每张牌的大小为1 ~ 13,问这些牌与加减乘除任意组合(可以使用括号),且但所有的有效解在计算过程中都涉及到分数,即非整数,能否组成答案m,如果可以 ...

  5. 2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲

    2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲 题目链接 做法:模拟即可 #include <bits/stdc++.h> #define P pair<int,in ...

  6. 2019牛客多校第四场 I题 后缀自动机_后缀数组_求两个串de公共子串的种类数

    目录 求若干个串的公共子串个数相关变形题 对一个串建后缀自动机,另一个串在上面跑同时计数 广义后缀自动机 后缀数组 其他:POJ 3415 求两个串长度至少为k的公共子串数量 @(牛客多校第四场 I题 ...

  7. 2022牛客多校(十)

    2022牛客多校(十) 一.比赛小结 比赛链接:"蔚来杯"2022牛客暑期多校训练营10 二.题目分析及解法(基础题) F.Shannon Switching Game? 题目链接 ...

  8. 2019牛客多校训练第十场F Popping Balloons

    2019牛客多校训练第十场F Popping Balloons 题意:二维平面内给你若干个点,然后你可以在x轴和y轴分别射三枪(每一枪的间隔是R),问最多能射掉多少气球. 题解:贪心.这个应该只能算作 ...

  9. 牛客多校第十场F-Popping Balloons

    题目连接 牛客多校F-PoppingBalloons 题意: 用枪打气球,可以横着打三次,竖着打三次,横着打可以把那一行的气球全打下来,竖着打可以把那一列的气球全打下来,但是,每两次相邻的横着打或者竖 ...

最新文章

  1. 使用gradle构建android项目,Android中使用Gradle来构建App项目的入门指南
  2. onbeforeedit和onbeginedit数据不一致_Rrbind.fill|列数不一致的多个数据集“智能”合并,Get!...
  3. C++ Primer 5th笔记(chap 15 OOP)继承之类型转换
  4. python dataframe删除指定行_pandas.DataFrame删除/选取含有特定数值的行或列
  5. 离线语音AIOT可能成为智能家居应用的新趋势
  6. allegro怎么设置孔的属性_两种在Allegro中增加过孔的方法
  7. java提示找不到或无法加载主类
  8. CSS学习笔记-04 a标签-导航练习
  9. 02-print的用法
  10. IOS精品源码,仿探探UIButton封装iOS提示弹框迅速引导页自定义导航栏
  11. 测试到产品经理的进阶之路
  12. 自动驾驶算法-滤波器系列(八)——IMM交互多模型介绍
  13. 心电自动分析技术综述-Phililps DXL / GE Marquette / Glasgow / HES Hannover / Mortara
  14. [Android] 百度地图API Android相关配置教程(包含获取包名、发布版SHA1和开发版SHA1)
  15. C#编写刷机工具exe替代adb敲命令行操作
  16. 倪光南华为鸿蒙,倪光南谈华为鸿蒙:国产鸿蒙操作系统需要生态支持
  17. 前端文件下载兼容方案(兼容主流浏览器,包括IE与Safari)
  18. 微信支付中的p12证书提取公钥、私钥、证书、序列号等
  19. 随笔:说说第一次在android中嵌入非全屏显示的unity游戏时的坑之——界面切换时出现延迟/卡顿/花屏等现象解决方法
  20. AccountManager使用教程

热门文章

  1. php 如何 闭源,Linux_Debian如何安装闭源软件包有哪些方法,  在系统操作中,闭源软件 - phpStudy...
  2. MySQL分组函数的使用特点
  3. SpringSecurity认证用户状态的判断
  4. Spring框架版本命名规则
  5. 角色管理与今日内容介绍
  6. 数据库-查看表-创建表-查询表
  7. Request_请求转发
  8. JVM-垃圾收集器与内存分配策略
  9. 缘起 Dubbo ,讲讲 Spring XML Schema 扩展机制
  10. python 导入numpy 导致多进程绑定同一个CPU问题解决方法