Codeforces 987E Petr and Permutations(数组的置换与复原 、结论)
题目连接: 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 ;
}
Codeforces 987E Petr and Permutations(数组的置换与复原 、结论)的更多相关文章
- CodeForces - 987E Petr and Permutations (思维+逆序对)
		
题意:初始有一个序列[1,2,...N],一次操作可以将任意两个位置的值互换,Petr做3*n次操作:Alxe做7*n+1次操作.给出最后生成的新序列,问是由谁操作得到的. 分析:一个序列的状态可以归 ...
 - Codeforces 986B. Petr and Permutations(没想到这道2250分的题这么简单,早知道就先做了)
		
这题真的只能靠直觉了,我没法给出详细证明. 解题思路: 1.交换3n次或者7n+1次,一定会出现一个为奇数,另一个为偶数. 2.用最朴素的方法,将n个数字归位,计算交换次数. 3.判断交换次数是否与3 ...
 - Codeforces 986B - Petr and Permutations
		
Description\text{Description}Description Given an array a[], swap random 2 number of them for 3n or ...
 - Codeforces Round #485 (Div. 2) E. Petr and Permutations
		
Codeforces Round #485 (Div. 2) E. Petr and Permutations 题目连接: http://codeforces.com/contest/987/prob ...
 - CF986B Petr and Permutations [逆序对]
		
题目传送门 Petr and Permutations 格式难调,题面就不放了. 分析: 胡乱分析+猜测SP性质一波.然后被学长告知:“1~n的排列交换次数与逆序对的奇偶性相同.”然后就愉快地A了. ...
 - Petr and Permutations CodeForces - 987E(逆序对)
		
题意: 给出一个长度为n的序列,求出是谁操作的(原序列为从小到大的序列),Peter的操作次数为3n,Alex的操作次数为7n+1 解析: 我们来看这个序列中的逆序对,逆序对的个数为偶数则操作次数为偶 ...
 - Codeforces 1093E Intersection of Permutations (CDQ分治+树状数组)
		
题意:给你两个数组a和b,a,b都是一个n的全排列:有两种操作:一种是询问区间在数组a的区间[l1,r1]和数组b的区间[l2,r2]出现了多少相同的数字,另一种是交换数组b中x位置和y位置的数字. ...
 - 【Codeforces 986B】Petr and Permutations
		
[链接] 我是链接,点我呀:) [题意] 题意 [题解] n为奇数时3n和7n+1奇偶性不同 n为偶数时也是如此 然后交换任意一对数 逆序对的对数的奇偶性会发生改变一次 求出逆序对 对n讨论得出答案. ...
 - CodeForces - 113B Petr# (后缀数组)
		
应该算是远古时期的一道题了吧,不过感觉挺经典的. 题意是给出三一个字符串s,a,b,求以a开头b结尾的本质不同的字符串数. 由于n不算大,用hash就可以搞,不过这道题是存在复杂度$O(nlogn)$ ...
 
随机推荐
- SQL Server自动备份存储过程和视图的方法
			
1 建立备份数据表 CREATE TABLE [dbo].[ProcBackup]( ,) NOT NULL, [name] [sysname] NOT NULL, ) NULL, [obj_id] ...
 - table表格(笔记)
			
<table class="table table-hover2 pick_carTable"> <thead> <tr class="bl ...
 - OffsetDateTime工具类
			
java8时间API介绍及使用 java7及之前版本,推荐使用jodatimejava8提供的datetime api参考了jodatime 在新的时间API中, Instant表示一个精确的时间点, ...
 - MATLAB矩阵的LU分解及在解线性方程组中的应用
			
作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 五.解答(按如下顺序提交电子版) 1.(程序) (1)LU分解源程序: function [ ...
 - safari 与 chrome 的小区别大BUG
			
safari 与 chrome 的小区别大BUG 时间:2016-11-01 17:33:19 作者:zhongxia 原文地址:https://github.com/zhongxia245/blog ...
 - 手机上的m3u8视频(缓存)怎么转成MP4?
			
一.下载M3u8合并APK,自定义扫描手机中的m3u8文件目录.选择导出的目录,可以多个同时进行m3u8的合并任务. 合并后的文件可以完整播放,但是视频时间只有前十来秒,进度无法拖动. 二.将合并好的 ...
 - Win10上启动UICrawler自动遍历时报 "org.openqa.selenium.WebDriverException: An unknown server-side error occur red while processing the command. Original error: Could not sign with default certifi cate."
			
操作步骤: 1.直接启动 Appium (我用的是 version 1.10.0) 2.打开命令窗口,切换到 UICrawler 所在路径 3.执行命令 java -jar UICrawler-2.2 ...
 - box-shadow的动效制作
			
突然发现原来box-shadow的功能很强大,还能做动效,下面整理下box-shadow几个效果 案例1:hover效果 <a href="/app/list">WEB ...
 - MongoDB 4.6.1 c++ driver 编译
			
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/25512251 这个版本号已经和之前不一样了 ...
 - PHP实现DES加密,解决乱码
			
PHP要实现DES加密,大体上有2个思路.一是用扩展,一是原生PHP实现. 这里推荐一个PHP原生实现的加密,是thinkphp的一个类库: https://github.com/top-think/ ...