Rating 900
2137B 有趣的数列
来源:CodeForces Round 1047 (Div. 3)-B. Fun Permutation
Tags: 构造算法 数学 数论
| 时间限制 | 内存限制 |
|---|---|
| 2 秒 | 256 megabytes |
中文题面可在本博客的cf题单中查看: 本题链接
根据题目可知,给定一个大小为 的排列 。找到一个大小为 的排列 ,使得对于所有 ,满足 。
那么,我们假设存在一个大小为 的排列 。使得
由输入的 的范围可知, 。于是,我们尝试构建一个数列 ,使得 的元素与 的元素之和的 值等于 。又因为数列 是一个排列,所以 也是一个排列,于是有 ,所以 。
所以题解为:
#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
using namespace std;
void solve() {
ll n;
cin >> n;
vector<ll> a(n);
for (ll i=0;i<n;i++) {
cin>>a[i];
if (i>0) cout<<" ";
cout<<n-a[i]+1;
}
cout<<endl;
}
int main() {
cin.tie(nullptr);
ios::sync_with_stdio(false);
ll t;
cin >> t;
while(t--) {
solve();
}
return 0;
}Last updated on