Codeforces 987E Petr and Permutations(数组的置换与复原 、结论)
2024-09-10 19:42:07
题目连接: Petr and Permutations
题意:给出一个1到n的序列,Petr打乱了3n次,Um_nik打乱了7n+1次,现在给出被打乱后的序列,求是谁打乱的。
题解:因为给出了一个3*n和一个7*n+1,发现这两个当一个为奇数另一个一定为偶数,所以可以联想和奇偶性质有关。但是这里面要算最短几步能把当前的序列变成1-n。这里我算错~~顺便学了一下如何将置换序列复原。
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> P;
typedef long long LL;
const int MAX_N = 1e6+;
const int INF =1e9+;
int N,M,T,S;
int vec[MAX_N];
int main(){
while(cin>>N)
{
for(int i=;i<=N;i++) scanf("%d",&vec[i]);
int num = ;
for (int i = ; i <= N; i++)
{
while (vec[i] != i)
{
swap(vec[i], vec[vec[i]]);
num++;
}
}
if((*N - num) % == ) cout<<"Petr"<<endl;
else cout<<"Um_nik"<<endl;
}
return ;
}
最新文章
- leetcode 日记 4sum java
- Oracle日期函数和循环总结
- CSS魔法堂:不得不说的Containing Block
- centos python2.6升级到2.7 还有单独的python3.5环境
- 打开FileGeoDatabase中要素类
- js 面试题
- N皇后问题--回溯法
- inline(内联元素)和block(块级元素) 的区别
- 360随身wifi怎样购买?360随身wifi怎样预约?
- 史上最全然oophper php文件上传之文件类型相应表,ie,火狐各一份。
- 删除 CentOS7 更新后产生的多余的内核
- SLIC superpixel算法
- 【HDU - 4341】Gold miner(分组背包)
- 哈希值、HashSet、LinkedHashSet
- java-http通信调用与创建
- 2、redis原生的命令操作不同数据类型
- Syntax error: Bad for loop variable解决办法
- window XP下 php5.5+mysql+apache2+phpmyadmin安装
- Linux 防火墙设置(转)
- TCP协议三次握手连接四次握手断开和DOS攻击