题目:
有一串密钥和一行message,求用密钥encode k次以后所得的信息。每次encode就是一次置换,只要求出每个位置经过k次置换后得到的位置就行了。而置换可以表示成循环群的乘积,在循环群里面的元素i,循环群的长度为l,那么k次置换后的位置就是(k+i)%l。
代码:
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include<climits>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <fstream>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <list>
#include <stdexcept>
#include <functional>
#include <utility>
#include <ctime>
using