当前位置: 首页 > news >正文

G. Special Permutation(构造)

1、题目

G. Special Permutation

这道题的意思是给我们从111nnn的排列,然后我们对这个排列的顺序上进行调换,需要满足的条件是任意两个相邻元素的绝对值的差满足条件:2≤∣pi−pi+1∣≤42\leq |p_i-p_{i + 1}|\leq 42pipi+14

2、分析

我们很容易发现,如果我们把奇数放在一起,偶数放在一起,那么对于这两部分而言,内部相邻的元素必定是满足条件的。

现在的问题是奇数部分和偶数部分之间衔接的地方,我们需要让这个地方也满足条件。因此,我们可以将奇数从大到小枚举,那么最后一

个奇数就一定是111。为了保证偶数和111的差值的绝对值是大于等于222的,我们就不能在111的右面放222。所以我们可以在111的右面放444。在444的右

面放222222的后面放666666后面按照升序枚举剩余的偶数即可。

根据上面的条件可以知道,我们必须得有444才行。所以如果我们的nnn是比444小,就无法构造出符合条件的序列,反之即可以构造。

3、代码

#include<bits/stdc++.h>
using namespace std;void solve()
{int n;cin >> n;vector<int>v(n);if(n < 4){cout << -1 << endl;return;}for(int i = n; i > 0; i --){if(i % 2)cout << i << " ";}cout << 4 << " ";for(int i = 2; i <= n; i ++ ){if(!(i % 2) && i != 4){cout << i << " ";}}cout << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;cin >> t;while(t --)solve();
}
http://www.lryc.cn/news/30815.html

相关文章:

  • QML动态对象管理
  • cmake入门03 -自定义find外部库
  • Dubbo源码解析-——服务导出
  • vue+django+neo4j 基于知识图谱红楼梦问答系统
  • 2023年全国最新食品安全管理员精选真题及答案13
  • Keychron K7 Pro 轻薄矮轴机械键盘开箱体验
  • 加油站ai视觉识别系统 yolov7
  • 【电子学会】2022年12月图形化二级 -- 绘制风车
  • 【golang/go语言】Go语言代码实践——高复用、易扩展性代码训练
  • [数据结构与算法(严蔚敏 C语言第二版)]第1章 绪论(学习复习笔记)
  • 05_Pulsar的主要组件介绍与命令使用、名称空间、Pulsar的topic相关操作、Pulsar Topic(主题)相关操作_高级操作、
  • 我的终端怎么莫名卡死了?shell下ctrl+s的含义
  • 【Vue】Vue的简单介绍与基本使用
  • 网络知识篇
  • python 连接数据库
  • 一文讲明白一致性hash算法
  • Java分布式解决方案(一)
  • 设备树系统学习(二)设备树的节点和属性
  • 【数据结构】二叉树的基本操作中的一些易错点
  • 在线图书借阅网站( Python +Vue 实现)
  • 不平衡数据集的建模的技巧和策略
  • 3. 算法效率
  • 仪表放大器放大倍数分析-运算放大器
  • laravel8多模块、多应用和多应用路由
  • 【Java学习笔记】6.Java 变量类型
  • Promise对象状态属性 工作流程 Promise对象的几个属性
  • webgpu思考obj携带属性
  • 设计模式(只谈理解,没有代码)
  • 06、Eclipse 中使用 SVN
  • Zookeeper3.5.7版本——客户端命令行操作(命令行语法)