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;
}

最新文章

  1. 单元测试 – ASP.NET MVC 4 系列
  2. java代码效率优化
  3. JQ AJAX
  4. WPF文字排列方式解析zz
  5. 封装实现一个自己的tabbar
  6. POJ1035——Spell checker(字符串处理)
  7. TeeChart 的应用
  8. Web.xml配置详解之context-param(转)
  9. ollicle.com: Biggerlink – jQuery plugin
  10. 使用Navicat Premium 和PL\SQL Developer连接Oracl
  11. linux重置密码的方法和用户切换
  12. eclipse导入maven时,html页面引入js的路径出现红色波浪线
  13. [Swift]LeetCode103. 二叉树的锯齿形层次遍历 | Binary Tree Zigzag Level Order Traversal
  14. 前端-JavaScript2-5——JavaScript之运算符进阶
  15. 从零开始学习java(一)java基础语法
  16. C++版-剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告
  17. 【数学建模】day02-整数规划
  18. 绕过/*,web.xml直接访问jsp【转】
  19. 六道JavaScript测验题
  20. JS学习笔记8_错误处理

热门文章

  1. 查询某个信息下只有一条数据的sql
  2. javascript-初级-day08
  3. CSS 基础 - Cascade and Inheritance
  4. Python+selenium之多窗口,句柄
  5. Java培训班4个月有用吗?
  6. 洛谷 P2791 - 幼儿园篮球题(第二类斯特林数)
  7. mysql—MySQL数据库中10位时间戳转换为标准时间后,如何对标准时间进行加减X天处理
  8. Python与Perl的相似与差别
  9. C语言中宏定义#define 、 typedef 和枚举类型
  10. 巩固java第六天