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

牛客周赛101 D题 题解

原题链接

https://ac.nowcoder.com/acm/contest/113313/D

题目描述

在这里插入图片描述

解题思路

很显然无论怎么排列,我们必定有至少一个区间的gcd为1,所以按位或的结果也必定不可能是偶数,所以如果m为偶数则直接无解。
我们可以将二进制位中除了1以外每一个二进制位对应的2的幂作为一个个长度为1的区间,然后把剩下的数拿去单独构造一个区间(gcd必定为1)
注意边界

代码(CPP)

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 1e5 + 10;
const int INF = 0x3fffffff;
const int mod = 1000000007;
bool used[maxn];void solve() {int n, m;cin >> n >> m;if ((m & 1) == 0) {cout << -1 << endl;return;}for (int i = 0; i < 31; i++) {if ((m >> i & 1LL) && (1LL << i) > n) {cout << -1 << endl;return;}}// 先把2的正数幂次选入vector<int> perm;int bits = 0;for (int i = 1; i < 31; i++) {if ((m >> i & 1LL)) {perm.push_back(1 << i);used[1 << i] = true;bits++;}}// 剩余的单独组成一个区间for (int i = 1; i <= n; i++) {if (!used[i]) {perm.push_back(i);}}// 输出排列for (int i = 0; i < perm.size(); i++) {cout << perm[i] << " ";}cout << endl;// 输出区间cout << bits + 1 << endl;for (int i = 1; i <= bits; i++) {cout << i << " " << i << endl;}cout << bits + 1 << " " << n << endl;
}int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cout << fixed;cout.precision(18);solve();return 0;
}
http://www.xdnf.cn/news/1196425.html

相关文章:

  • 五、搭建springCloudAlibaba2021.1版本分布式微服务-gateway网关
  • 力扣热题100----------53最大子数组和
  • 零基础学习性能测试第五章:Tomcat的性能分析与调优-Tomcat原理,核心配置项,性能瓶颈分析,调优
  • RAG(检索增强生成)
  • 探秘CommonJS:Node.js模块化核心解析
  • redis主从复制、哨兵机制底层原理
  • XML Schema 指示器:全面解析与深度应用
  • 齐护Ebook科技与艺术Steam教育套件 可图形化micropython Arduino编程ESP32纸电路手工
  • xgboost 机器学习在生物信息学中的应用
  • 【橘子分布式】gRPC(番外篇-客户端重试机制)
  • PostGIS面试题及详细答案120道之 (021-030 )
  • Java面试精进:测试、监控与序列化技术全解析
  • Netty中 ? extends Future<? super V>这种的写法的理解
  • 51c自动驾驶~合集9
  • Java面试宝典:MySQL执行原理二
  • Spring AI 项目实战(二十一):Spring Boot + AI +DeepSeek驱动的智能题库系统(附完整源码)
  • bash的特性-常用的通配符
  • AWS免费套餐全面升级:企业降本增效与技术创新解决方案
  • HCIP---MGRE实验
  • 电子电气架构 --- 软件bug的管理模式
  • logstash采集springboot微服务日志
  • 【奔跑吧!Linux 内核(第二版)】第4章:内核编译和调试
  • 商汤发布具身智能平台,让机器人像人一样和现实世界交互
  • Agent大模型大厂面试题及讲解答案
  • 【分享】外国使馆雷电综合防护系统改造方案(一)
  • 不坑盒子:Word里1秒制作“花括号”题目,多音字组词、形近字组词……
  • 【最新版】防伪溯源一体化管理系统+uniapp前端+搭建教程
  • 【Qt开发】信号与槽(二)-> 信号和槽的使用
  • 积分兑换小程序Java
  • 深入理解 Spring 中的 XmlBeanFactory 原理及实践