CF1454A Special Permutation 题解
2024-10-19 15:50:57
Content
给定一个整数 \(n\),请构造出一个长度为 \(n\) 的排列 \(\{a_i\}_{i=1}^n\),使得对于每个 \(a_i\),都有 \(a_i\neq i\)。
我们称一个长度为 \(n\) 的数列为一个排列,当且仅当所有 \(1\sim n\) 的整数都出现且仅出现了一次。比如说 \([2,3,1,5,4]\) 就是一个长度为 \(5\) 的排列,而 \([1,2,2]\) 和 \([1,3,4]\) 都不是一个排列。
数据范围:\(1\leqslant t\leqslant 100,2\leqslant n\leqslant 100\)。
Solution
我发现当时的构造方法复杂了些……还是讲讲吧。
如果 \(n\) 是偶数,直接倒着输出 \(n,n-1,...,1\) 即可。
如果 \(n\) 是奇数,输出 \(n,n-1,...,\left\lfloor\dfrac {n+1}2\right\rfloor+1,1,2,...,\left\lfloor\dfrac {n+1}2\right\rfloor\) 即可。
Code
int t, n;
int main() {
t = Rint;
while(t--) {
int n = Rint;
if(!(n % 2)) R(i, n, 1) printf("%d ", i);
else {
int mid = (n + 1) >> 1;
R(i, n, mid + 1) printf("%d ", i);
F(i, 1, mid) printf("%d ", i);
}
puts("");
}
return 0;
}
最新文章
- 单元测试 – ASP.NET MVC 4 系列
- java代码效率优化
- JQ AJAX
- WPF文字排列方式解析zz
- 封装实现一个自己的tabbar
- POJ1035——Spell checker(字符串处理)
- TeeChart 的应用
- Web.xml配置详解之context-param(转)
- ollicle.com: Biggerlink – jQuery plugin
- 使用Navicat Premium 和PL\SQL Developer连接Oracl
- linux重置密码的方法和用户切换
- eclipse导入maven时,html页面引入js的路径出现红色波浪线
- [Swift]LeetCode103. 二叉树的锯齿形层次遍历 | Binary Tree Zigzag Level Order Traversal
- 前端-JavaScript2-5——JavaScript之运算符进阶
- 从零开始学习java(一)java基础语法
- C++版-剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告
- 【数学建模】day02-整数规划
- 绕过/*,web.xml直接访问jsp【转】
- 六道JavaScript测验题
- JS学习笔记8_错误处理