C. Almost All Multiples(贪心 + 思维)

news2025/7/6 22:24:13

Problem - C - Codeforces

给定两个整数n和x,如果pi是i的倍数,所有1≤i≤n-1,pn=1,且p1=x,则长度为n的排列组合† p被称为搞笑。

找出最小的有趣的排列组合,或报告说不存在这样的排列组合。

† 长度为n的排列组合是一个由1到n的每个整数精确地组成的数组。

‡ 让a和b是长度为n的排列组合。如果在a和b不同的第一个位置i,ai<bi,则a在词典上小于b。如果一个排列组合比其他所有的排列组合都小,那么这个排列组合就是词典上最小的排列组合。

输入
输入由多个测试案例组成。第一行包含一个整数t(1≤t≤104)--测试案例的数量。测试用例的描述如下。

每个测试用例的唯一一行包含两个整数n和x(2≤n≤2⋅105;1<x≤n)。

所有测试用例的n之和不超过2⋅105。

输出
对于每个测试用例,如果答案存在,则输出n个不同的整数p1,p2,...,pn(1≤pi≤n) - 词汇学上最小的有趣的排列组合p,否则,输出-1。

例子
输入复制
3
3 3
4 2
5 4
输出拷贝
3 2 1 
2 4 3 1 
-1
注意
在第一个测试案例中,排列组合[3,2,1]满足所有条件:p1=3, p3=1, 并且。

p1=3是1的倍数。
p2=2是2的倍数。
在第二个测试案例中,排列组合[2,4,3,1]满足所有条件:p1=2,p4=1,并且。

P1=2是1的倍数。
p2=4是2的倍数。
p3=3是3的倍数。
我们可以证明,这些排列组合是lexicographically最小的。

在第三个测试案例中不存在这样的排列组合。

题解:
我们目前知道

a[1] = x

a[n] = 1

如果n不能放在x的位置上,则一定不存在这样的数组

如果存在

a[x] = n

但是可能会出现,

t = x(代表目前a[t] = n)

if(n%(x*i) == 0&&x*i%t == 0)

swap(a[x*i],a[t])

t = x*i

那么我们就可以把小的数往前提,大的数往后放,模拟这个过程即可

#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define int long long
//1 1 3 3 3
int n,k,m;
int a[200040];
void solve()
{
	int n,x;
	cin >> n >> x;
	if(n%x)
	{
		cout<<"-1\n";
	}
	else
	{
		for(int i =2 ;i < n;i++)
		a[i] = i;
		a[x] = n;
		a[1] = x;
		a[n] = 1;
		int t = x;
		for(int i = 1;i*x < n;i++)
		{
			if(n%(i*x) == 0&& (x*i)%t == 0)
			{
				swap(a[i*x],a[t]);
				t = i*x;
			}
		}
		for(int i = 1;i <= n;i++)
		cout<<a[i]<<" ";
		cout<<"\n";
	}
}
signed main()
{
	int t = 1;
	cin >> t;
	while(t--)
	{
		solve();
	}
}
//4 8 12 16 20 24
//

//1 2 3 2
//1 2 2 2 2 3
//

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/37087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式学习必看:十年架构大佬带你从零开始学习分布式服务框架!

前言 最近在看《架构探险-从零开始写分布式服务框架》&#xff0c;对于分布式框架的入门级选手还是挺合适的&#xff0c;扫盲。对分布式服务框架中的基本概念&#xff1a;RPC、SOA、序列化、Spring集成RPC、ZooKeeper、I/O模型、Netty、软负载、服务治理做了系统介绍。手写了R…

【知识网络分析】引文网络(citation)

引文网络(citation) 1 读取本地文献并构建引文网络数据集2 网络数据集精简3 剔除孤立点方法封装4 网络图美化5 社团群体划分并结合色谱图显示6 网络节点中心度相关指标计算1 读取本地文献并构建引文网络数据集 新建一个notebook文件后,导入需要使用的包,本案例使用WOS数据…

进程、线程、 Thread类的基本用法 【javaee】

目录 一、什么是进程/任务&#xff08;Process/Task&#xff09; 二、什么是线程&#xff08;Thread&#xff09; 三、进程和线程的区别 四、创建线程的方法&#xff1a; 方法1 继承 Thread &#xff0c;重写run 方法2 实现 Runnable 接口 方法3 匿名内部类创建 Thread …

数据库的常用操作

数据库的分类 数据库大体可以分为 关系型数据库 和 非关系型数据库 关系型数据库&#xff1a;是指采用了关系模型来组织数据的数据库&#xff0c;关系模型指的就是二维表格模型&#xff0c;关系型数据库都基于标准的SQL&#xff0c;只是内部一些实现有区别 常见关系型数据库…

奇舞周刊第 473 期: Rollup 与 Webpack 的 Tree-shaking

记得点击文章末尾的“ 阅读原文 ”查看哟~下面先一起看下本期周刊 摘要 吧~奇舞推荐■ ■ ■Rollup 与 Webpack 的 Tree-shakingRollup 和 Webpack 是目前项目中使用较为广泛的两种打包工具&#xff0c;去年发布的 Vite 中打包所依赖的也是 Rollup&#xff1b;在对界面加载效率…

Java项目:JSP手机商城管理系统包含前台

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为前后台&#xff0c;分为管理员与普通用户两种角色&#xff0c;管理员登录后台&#xff0c;普通用户登录前台&#xff1b; 管理员角色…

编译原理之词法分析器随笔和简单实现

借鉴: 编译原理之美. 极客时间上 什么是词法分析 编译原理&#xff1a;词法分析简单的来说就是在字符串中提取一系列的word单词. 编译器的眼里, 我们的一切输入都是什么? 都是一个一个的字符串. 所以编译器干的就是字符串解析工作. 词法分析&#xff1a;自然就是解析出来…

Vue中el和data的写法与 MVVM模型

目录 el和data的两种写法 el的两种写法 data的两种写法 data与el的写法小结 MVVM模型 MVVM模型小结 el和data的两种写法 el的两种写法 <body> <div id"root"> hello,{{name}}</div><script type"text/javascript">const vm ne…

iwebsec靶场 SQL注入漏洞通关笔记3- bool注入(布尔型盲注)

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入&#xff08;宽字节注入&#xff09;_mooyuan的博客-CSDN博客 目录 文章目录 前言 一、源码分析 二、sqlmap渗透 1.注入命令 2.完整交互过程…

小技巧1:如何给pip install进行换源

大家好&#xff0c;我是Kamen Black君&#xff0c;今天给大家介绍一个小技巧&#xff1a;如何给pip安装进行换源。 print("祝大家每天快乐&#xff0c;love and peace&#xff01;") 曾几何时&#xff0c;当我准备好了一段很有趣的代码准备进行运行时&#xff0c;发…

亚马逊云科技re:Invent:这些成功的数据驱动新企业背后的秘诀是什么?

北京时间11月29号&#xff0c;亚马逊云科技年度峰会re:Invent 2022将在拉斯维加斯开幕。这场年度最重磅的云计算技术大会不仅是科技盛宴&#xff0c;也是亚马逊云科技与诸多客户交流互鉴的绝佳平台&#xff0c;今天带大家认识一下几位资深云计算用户&#xff0c;以及他们和re:I…

ENVI5.6超详细教程大全-从安装包到安装流程详解

一、获取资源&#xff1a; https://www.xsoftnet.com/share/a000HzsWPCJXi.html二、安装教程&#xff1a;安装前请关闭杀毒软件&#xff0c;系统防火墙&#xff0c;断开网络连接 1.解压ENVI5.6安装包&#xff1a;ENVI5.6.zip 2.找到envi56-win.exe文件&#xff0c;双击进行安装…

Centos7 安装部署Kubernetes(k8s)集群实现过程

一.系统环境 服务器版本docker软件版本CPU架构CentOS Linux release 7.4.1708 (Core)Docker version 20.10.12x86_64二.前言 下图描述了软件部署方式的变迁&#xff1a;传统部署时代&#xff0c;虚拟化部署时代&#xff0c;容器部署时代。 传统部署时代&#xff1a; 早期&am…

制作一个简单HTML游戏网页(HTML+CSS)仿龙之谷网络游戏官网

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

vite+ts-3-后端准备(慢慢更新)

random recording 随心记录 What seems to us as bitter trials are often blessings in disguise. 看起来对我们痛苦的试炼&#xff0c;常常是伪装起来的好运。 应用tskoamysql构建高可维护性和扩展性架构 数据库基础 定义和特点 数据库就是按照特定格式存储数据的文件集合&…

二本Java渣渣9面字节遭虐,苦修数月深造这份宝典,终进阿里

见过真正头铁的程序员吗&#xff1f;如题所示&#xff0c;真人真事&#xff0c;这位二本的兄弟在这短短几个月内海投了638份简历&#xff0c;全挑的大厂岗位投的&#xff0c;仅字节跳动就前前后后面试了九次&#xff0c;他说&#xff1a;没有撤退可言。 九次面试经历也是奇了—…

西门子精彩触摸屏SMART V3组态用户管理的具体方法和步骤

西门子精彩触摸屏SMART V3组态用户管理的具体方法和步骤 如下图所示,新建一个项目,在连接中添加连接,触摸屏的IP地址要和 PLC的IP地址保持在同一网段, 如下图所示,在变量中添加一个变量, 如下图所示,在画面1中添加一个IO域,并连接上图中的变量, 如下图所示,设置…

python数据分析绘图

ROC-AUC曲线&#xff08;分类模型&#xff09; 混淆矩阵 混淆矩阵中所包含的信息 True negative(TN)&#xff0c;称为真阴率&#xff0c;表明实际是负样本预测成负样本的样本数&#xff08;预测是负样本&#xff0c;预测对了&#xff09;False positive(FP)&#xff0c;称为假…

HTML5期末大作业:游戏网站设计与实现——基于bootstrap响应式游戏资讯网站制作HTML+CSS+JavaScript

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

力扣每日一题:882. 细分图中的可到达节点【最短路径dijkstra】

给你一个无向图&#xff08;原始图&#xff09;&#xff0c;图中有 n 个节点&#xff0c;编号从 0 到 n - 1 。你决定将图中的每条边 细分 为一条节点链&#xff0c;每条边之间的新节点数各不相同。 图用由边组成的二维数组 edges 表示&#xff0c;其中 edges[i] [ui, vi, cn…