玩游戏(game)

技术玩游戏(game) 玩游戏(game)玩游戏(game)玩游戏(game)
题目背景
x 正在玩游戏。
题目描述
x 有一个长度为 \(n\) 的数列 \(a\),还有一个长度为 \(n\) 的数列

玩游戏

玩游戏

玩游戏(game)

题目背景

x在玩游戏。

题目描述

x有一个长度为\(n\)的序列\(a\)和一个长度为\(n\)的序列\(x\),序列\(x\)正好是\(1\sim n\)的排列。

在\(0\)轮中,序列\(a_i=i,i\in [1,n]\)。

每下一轮,X都会执行一次操作。在最后一轮中将\(a_i\)替换为\(a_{x_i}\)。

同时,x还要求恰好在\(m\)轮次中排序\(a_i=i,i\in [1,n]\),即与\(0\)轮次处于同一状态,且没有\(t(1\le tm)\),这样在第一轮。

现在X要求你构造一个组合序列\(x\)。如果没有合法的序列\(x\),输出\(-1\)。

因为提问者懒得写spj,所以X想让你输出字典顺序最小的序列\(x\)。

输入格式

一行,两个正整数\(n,m\)。

输出格式

一行数字,即满足要求的最小字典顺序的序列。

样例

样例输入 1

8 7

样例输出 1

1 3 4 5 6 7 8 2

样例输入 2

8 8

样例输出 2

2 3 4 5 6 7 8 1

样例输入 3

8 9

样例输出 3

-1

数据范围与提示

对于\(20\%\),\ (1 \ le n \ le 10 3,1 \ le m \ le 10 7 \)

此外,对于\(10\%\),\(m=1\)的数据。

对于\(100\%\),\ (1 \ le n \ le 3 \乘以10 ^ 6,1 \ le m \ le 10 {14} \)

solution

题解

研究发现,如果一个数经过几轮后回到自身,那么这个数和过程中的那些数可以形成一个大小为\(b_i\)的环。

因此,这个问题就变成了构造一个任意长度、n和m的最小公倍数的序列b,并最小化它的字典顺序。

也就是满足:

\(1\le k,b_i\le n\)

\(b_1 b_2 b_3 \cdots b_k=n\)

\(\operatorname{lcm}(b_1,b_2,b_3,\cdots,b_k)=m\)

在满足\(1,2,3\)的前提下,字典顺序最小。

因此,我们可以把\(m\)分解成素因子,把相同基数的数相乘,让这些数成为数列\(b\)。如果没有足够的\(n\),我们可以补足\(1\)。

周期越大,越晚。当是周期的转折时,把\(t\)放在\(t b_i-1\)之后,可以证明此时字典顺序最小。

std

#包括牡蛎

#includecstdio

#包括算法

使用命名空间标准;

int n,p,q=1,cnt

长长m,ans[20],和;

int main()

{

scanf('%d%lld ',n,m);

for(long long I=2;I * I=m;(一)

{

if(m%i==0) p,ans[p]=1;

否则继续;

while(m%i==0)

{

ans[p]*=I;

m/=I;

}

sum=ans[p];

}

if(m!=1)

{

ans[p]=m;

sum=ans[p];

}

if(nsum)

{

printf('-1 \ n ');

返回0;

}

sort(ans 1,ans P1);

for(int I=1;I=n;(一)

{

if(I=n-和)

{

printf(“% d”,I);

继续;

}

碳纳米管;

if(cnt==ans[q])

{

CNT=0;

printf('%lld ',I-ans[q]1);

q;

}

else printf('%d ',I ^ 1);

}

返回0;

}

后话

吐槽

思维简单,代码容易写,没有癌症的小问题和新鲜问题。

总结

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/74737.html

(0)

相关推荐

  • 速度单位换算,物理长度、速度单位换算

    技术速度单位换算,物理长度、速度单位换算常用单位常用的长度单位有速度单位换算:公里{千米} (km)、分米(dm)、厘米(cm)、毫米(mm)、微米(μm)、纳米(nm)、皮米(pm)、飞米(fm)。
    (1)公里
    公里又

    生活 2021年10月30日
  • jvm内存结构及原理(jvm内存结构讲解)

    技术JVM内存的结构是怎样的这篇文章主要介绍“JVM内存的结构是怎样的”,在日常操作中,相信很多人在JVM内存的结构是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JVM内存的结构是

    攻略 2021年12月21日
  • 送老师鲜花禁忌,老师生病了,我该送什么呢

    技术送老师鲜花禁忌,老师生病了,我该送什么呢考虑到老师的身体还没有完全恢复,胃口也不好,送营养品不是很实用,出院的时候还增加行李负担。不妨看望他的时候送一些鲜花,鲜花可以调节他的心情,心情好了,身体也能够快速恢复。但是老

    生活 2021年10月25日
  • Sharding ,分片模式)

    技术Sharding ,分片模式) Sharding (分片模式)Sharding (分片模式)
    副本集可以解决主节点发生故障导致数据丢失或不可用的问题,但遇到需要存储海量数据的情况时,副本集机制就束手

    礼包 2021年11月23日
  • MYSQL如何利用MYSQL Shell安装 INNODB Cluster

    技术MYSQL如何利用MYSQL Shell安装 INNODB Cluster今天就跟大家聊聊有关MYSQL如何利用MYSQL Shell安装 INNODB Cluster,可能很多人都不太了解,为了让大家更加了解,小编

    攻略 2021年10月25日
  • 如何理解一致性hash算法和实现

    技术如何理解一致性hash算法和实现本篇文章给大家分享的是有关如何理解一致性hash算法和实现,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一致性hash算

    攻略 2021年11月24日