codeforces Round #668 (Div. 2) 1405A Permutation Forgery

题目链接

在这里插入图片描述

题目翻译:

一个长度为n的permutation是一个由整数1~n以随意顺序组合的数组。比如[2,3,1,5,4]就是一个permutation,但是[1,2,2]就不是permutation(2出现了两次),[1,3,4]也不是permutation(n=3但是4在数组中)。
p是一个长度为n的permutation,我们定义fingerprint F(p) 为数组p任意两个相邻的元素的和组成的有序数组, 即F(p)=sort([p1+p2, p2+p3, … , pn-1+pn])
比如,如果n=4,p=[1,4,2,3],则F(p)= sort([1+4,4+2,2+3]) = sort([5,6,5]) = [5,5,6]。
给你一个长度为n的permutation p,你的任务是找到一个不同的permutation p’,使得**F(p)F(p’)**相等。如果pi!=p’i则表示p与p’是两个不同的permutation。

解题思路:

刷题太少的我被摆了一道,居然花了我17分钟,最后才发现,直接倒序输出就行了。

代码:
#include<iostream>
using namespace std;
int main(){
    
    
//	freopen("1.txt","r",stdin);
	int t,n,a[110];
	cin>>t;
	while(t--){
    
    
		cin>>n;
		for(int i=0;i<n;i++){
    
    
			cin>>a[i];
		}
		for(int i=n-1;i>=0;i--){
    
    
			cout<<a[i]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
总结:

多思考,像这题确实简单,但是一开始实在想不出来,但是看了其分数,发现500都不到,就往简单了想。

猜你喜欢

转载自blog.csdn.net/lmmmmmmmmmmmmmmm/article/details/108463088
今日推荐