POJ - 1026 Cipher(置换群的幂)
题目链接:点击查看
题目大意:给出一个置换群,再给出数个字符串,每个字符串需要输出执行 k 次置换群后的答案
题目分析:置换群的 k 次幂,直接写就行了
代码:
#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=210;int a[N];char str[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;while(scanf("%d",&n)!=EOF&&n){for(int i=1;i<=n;i++)scanf("%d",a+i);memset(vis,false,sizeof(vis));vector<int>circle[N];int cnt=0;for(int i=1;i<=n;i++){if(vis[i])continue;cnt++;int pos=i;while(!vis[pos]){circle[cnt].push_back(pos);vis[pos]=true;pos=a[pos];}}int k;while(scanf("%d",&k)!=EOF&&k){gets(str);int len=strlen(str);for(int i=len;i<=n;i++)str[i]=' ';for(int i=1;i<=cnt;i++){int sz=circle[i].size();for(int j=0;j<sz;j++)ans[circle[i][(j+k)%sz]]=str[circle[i][j]];}ans[n+1]=0;puts(ans+1);}puts("");}return 0;
}
POJ - 1026 Cipher(置换群的幂)相关推荐
- poj 1026:Cipher
1026:Cipher 查看 提交 统计 提示 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 Bob and Alice started to use a brand-ne ...
- POJ 1026 Cipher G++
#include <iostream> #include <cstring> #include <cstdio> using namespace std; //抄博 ...
- H - Fibonacci POJ - 3070 (矩阵快速幂)
H - Fibonacci POJ - 3070 (矩阵快速幂) Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and ...
- 牛客多校6 - Josephus Transform(线段树求k-约瑟夫环+置换群的幂)
题目链接:点击查看 题目大意:给出一个长度为 n 的排列,初始时为 1 , 2 , 3 ... n - 1 , n,现在有 m 次操作,每次操作表示为 ( k , x ) ,即进行 x 次 k-约瑟夫 ...
- 【POJ】1026.Cipher
题解 置换群的快速幂,然而我姿势水平不高,样例过不去,然后才明白这个置换的意思是这个位置上的数代表要把原位置的某个数换过来 需要新开一个数组存结果 代码 #include <iostream&g ...
- POJ 3070 Fibonacci(矩阵快速幂入门、模板)
? 题目链接:http://poj.org/problem?id=3070 ? 这题就是让求斐波那契数列的第n项,但是题目中n很大,所以打表和直接求都会TLE,对于这个题我们可以用矩阵快速幂,下面 ...
- 牛客多校2 - Just Shuffle(置换群的幂)
题目链接:点击查看 题目大意:给出一个置换 B,求出一个置换 A ,使得 ,k 是一个大质数 题目分析:等式两边同时乘以 t 次幂,变为 ,显然当 t 为 k 的逆元时,有式子 ,所以求一下 B 的 ...
- ajax怎样带值,ajax携带状态值
linux下python调用c模块 在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一 ...
- 置换群的整幂运算【置换群】
置换群的整幂运算 定理及结论: 1.在置换群中有一个定理:设T^k = e(T 为一置换,e为单位置换(单位置换:映射函数为 f(x) = x 的置换)),那么k的最小正整数解是 T 的拆分的所有循节 ...
最新文章
- 会声会影水墨遮罩如何变大_自媒体长期网赚项目: 自媒体如何打造自己的自媒体知识付费课程(干货)...
- HTML5的未来 - HTML5 还能走多远?
- EOS 源代码解读 (2)插件-流程
- 面试被拒绝如何争取_争取反馈
- javascript-内置对象-正则
- 11.频域里的卷积——介绍,傅里叶变换和卷积,快速傅里叶变换(FFT)_1
- 贾跃亭:在性能、奢华和科技综合评比中 FF 91战胜了奔驰S迈巴赫、库里南
- python——语音信号读取、分帧、加窗
- java循环遍历map集合_Java中遍历Map集合的四种方法
- 如何在工作中设定和使用 SMART 目标
- 双线性插值法图像放缩示例
- Idea设置默认不折叠一行的函数
- Golang 的 mgo 连接池
- 规则引擎drools系列(一)
- 线索二叉树(Threaded BinaryTree)
- 傅里叶变换(真正的通俗易懂)
- 使用 golang gopacket 实现进程级流量监控
- 撤销 图层调整 合并图层 图层选择 图层锁定(ps尚硅谷学习)
- IT招聘网站(程序员跳槽指南) 1
- 开发保密的计算机应用系统时 研制人员,计算机考试题库:计算机基础练习题(19)...