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

【CF】Day46——Codeforces Round 967 (Div. 2) B

B. Generate Permutation

题目:

思路:

写写水题

这题简单思维,就是题目有点长

简单来说就是我们要构造一个数列,使得满足第一台机器回到起点的位置和第二台机器回到起点的位置次数一样

那么要让第一台机器回到起点,那么肯定是 x / x + 2 / x + 1 这样的,同理让第二台机器回到起点要类似 x + 1 / x + 2 / x 这样的

那么一个显然的方法就是构造 1 3 5 7 9 .... n n - 1 n - 3 n - 5 ..... 8 6 4 2

这样的话对于 1 2 机器一肯定要回到原点开启下一次的 3 4,而机械二遇到1后回到起点时直接就能解决 2 然后去解决 3 4,可以看出是一个对称的操作

特殊情况,如果 n 是偶数是无法构成的,因为此时必定会有一个机器会比另一个机器起码多一次操作,因为肯定有一个机器可以一次解决掉两个数,而另一个机器无法一次解决两个数,就像我们上述构造的这个一样

代码:

#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"void solve()
{int n;cin >> n;if (n % 2 == 0){cout << "-1\n";return;}for (int i = 1; i <= n; i+=2){cout << i << " ";}for (int i = n-1; i >= 2; i -= 2){cout << i << " ";}cout << endl;
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}

http://www.dtcms.com/a/164706.html

相关文章:

  • 【C++贪心】P6023 走路|普及
  • 欧拉计划 Project Euler60(素数对集合)题解
  • 双系统安装 ios放同一个u盘 ventory使用+windows安装,双系统互相访问中间盘 切换默认启动系统
  • 巧记英语四级单词 Unit7-上【晓艳老师版】
  • 多块盘创建RAID5以及后增加空间
  • 小结:PKI(Public Key Infrastructure,公钥基础设施)
  • CSdiy java 06
  • 西门子笔记四:Uart模块
  • 异步机制与 CPU 的关系解析
  • C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 15)
  • 当 AI 成为 “数字新物种”:人类职业的重构与进化
  • 角度(degrees)和弧度(radians)转换关系
  • Glide 如何加载远程 Base64 图片
  • 链表反转操作经典问题详解
  • 关于 const a 定义的数据 与 其渲染 的问题。即通过const定义的常量,会不会导致渲染不及时。
  • 原语的使用
  • 归并排序排序总结
  • 创建RAID1并扩容RAID
  • 使用C# ASP.NET创建一个可以由服务端推送信息至客户端的WEB应用(1)
  • Redis分布式锁使用以及对接支付宝,paypal,strip跨境支付
  • Qwen3-8B安装与体验-速度很快!
  • 国内无法访问GitHub官网的问题解决
  • 碰到的 MRCPv2 串线以及解决思路
  • C语言Makefile编写与使用指南
  • centos7 安装python3
  • IIC小记
  • Wi-SUN与LoRa和NB-IoT通信技术的对比
  • Femap许可分配和监控
  • API文档生成与测试工具推荐
  • CSS in JS:机遇与挑战的思考