CF1981D Turtle and Multiplication 题解

Turtle and Multiplication

传送门

Turtle just learned how to multiply two integers in his math class, and he was very excited.

Then Piggy gave him an integer n n n , and asked him to construct a sequence a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an consisting of integers which satisfied the following conditions:

  • For all 1 ≤ i ≤ n 1 \le i \le n 1in , 1 ≤ a i ≤ 3 ⋅ 1 0 5 1 \le a_i \le 3 \cdot 10^5 1ai3105 .
  • For all 1 ≤ i < j ≤ n − 1 1 \le i < j \le n - 1 1i<jn1 , a i ⋅ a i + 1 ≠ a j ⋅ a j + 1 a_i \cdot a_{i + 1} \ne a_j \cdot a_{j + 1} aiai+1=ajaj+1 .

Of all such sequences, Piggy asked Turtle to find the one with the minimum number of distinct elements.

Turtle definitely could not solve the problem, so please help him!

Input

Each test contains multiple test cases. The first line contains the number of test cases t t t ( 1 ≤ t ≤ 1 0 4 1 \le t \le 10^4 1t104 ). The description of the test cases follows.

The first line of each test case contains a single integer n n n ( 2 ≤ n ≤ 1 0 6 2 \le n \le 10^6 2n106 ) — the length of the sequence a a a .

It is guaranteed that the sum of n n n over all test cases does not exceed 1 0 6 10^6 106 .

Output

For each test case, output n n n integers a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an — the elements of the sequence a a a .

If there are multiple answers, print any of them.

Example

input #1

3
2
3
4

output #1

114514 114514
1 2 2
3 3 4 4

Note

In the third test case, a = [ 3 , 4 , 2 , 6 ] a = [3, 4, 2, 6] a=[3,4,2,6] violates the second condition since a 1 ⋅ a 2 = a 3 ⋅ a 4 a_1 \cdot a_2 = a_3 \cdot a_4 a1a2=a3a4 . a = [ 2 , 3 , 4 , 4 ] a = [2, 3, 4, 4] a=[2,3,4,4] satisfy the conditions but its number of distinct elements isn’t minimum.

题面翻译

题目描述

请构造一个长度为 n n n 的整数数列 { a n } \{a_n\} {an},满足:

  • 1 ≤ a i ≤ 3 × 1 0 5 1 \le a_i \le 3 \times 10^5 1ai3×105
  • ∀ 1 ≤ i < j ≤ n − 1 \forall 1 \le i<j\le n-1 ∀1i<jn1 ,有 a i a i + 1 ≠ a j a j + 1 a_ia_{i+1} \ne a_ja_{j+1} aiai+1=ajaj+1 ,即:相邻两项之积两两互不相等。

在满足上述要求的基础上,需要让数列中的不同元素个数最少。

输入输出格式

输入第一行一个整数 t t t 表示数据组数。

每组数据的输入包含一行一个整数 n n n ,代表数列长度。

对于每组数据,请输出一行 n n n 个整数,中间由空格分隔,代表你构造的数列。

1 ≤ t ≤ 1 0 4 1 \le t \le 10^4 1t104 , 2 ≤ n ≤ 1 0 6 2 \le n \le 10^6 2n106

对于一个测试点中所有测试数据, ∑ n ≤ 1 0 6 \sum n \le 10^6 n106

注明

以上来自 C o d e F o r c e s ,翻译来源:洛谷。 以上来自CodeForces,翻译来源:洛谷。 以上来自CodeForces,翻译来源:洛谷。

BlastMike:额,好像缺了啥?
BestMonkey:CodeForces 你什么时候能完善一下你的 Markdown 格式啊!你知道我复制下来题面还要一个一个删多余的空格吗!你看看人家洛谷啊!
BlastMike:你好像之前说过。

解题思路

可以想到填入质数。题目中 a i ≤ 3 × 1 0 5 a_i\leq 3\times 10^5 ai3×105 ,其中的质数一定可以满足组成。

BlastMike:
在这里插入图片描述
Banksy:愣着干嘛,转图论啊。
Mike:我来冒个泡。

假设我们要填入 N N N 个不同的质数,在任意两个质数之间连边,由于质数可以相同,则可以出现自环,这样子问题就转化为了选择一个质数开始并不断沿着边走 n n n 步,不能走重复的边。

BeatMonkey:这是一个欧拉路问题。
Bell:废话。

  • 如果 N N N 为奇数:度数为 N + 1 N+1 N+1 的点的数量为偶数,必存在一个欧拉回路,最多能形成长度为 N ( N + 1 ) 2 \frac{N(N+1)}{2} 2N(N+1) 的序列。
  • 如果 N N N 为偶数:删去其中的 N 2 2 − 1 \frac{N^2}{2}-1 2N21 条边且删去的边没有两条边有公共的端点,必存在一个欧拉路径,最多能够形成长度为 N 2 2 + 1 \frac{N^2}{2}+1 2N2+1 的路径。

找到最小的能形成长度超过 n n n 的路径的 N N N,再建图跑欧拉路即可。

Code

#include<bits/stdc++.h>
using namespace std;
#define Man main
const int Maxn=3e5+5,Maxm=1500;
int M,Prime_List[Maxn];
bool Mark[Maxn];
bitset<Maxm>Vis[Maxm];
stack<int>Stk;
inline void DFS(int u){if(Vis[u][u]){Vis[u][u]=0;DFS(u);}for(register int i=Vis[u]._Find_first();i<=M;i=Vis[u]._Find_first())if(Vis[u][i]){Vis[u][i]=Vis[i][u]=0;DFS(i);}Stk.push(Prime_List[u]);
}
inline void Solve(){int n;cin>>n;if(n==1){cout<<1<<endl;return;}for(M=1;(M*(M+1)/2)-((M&1)?0ll:((M>>1)-1))<n-1;++M);for(register int i=1;i<=M;++i)Vis[i].set();if(!(M&1))for(register int i=3;i<=M;i+=2)Vis[i][i+1]=Vis[i+1][i]=0;DFS(1);while(!Stk.empty()&&n){cout<<Stk.top()<<" ";Stk.pop();n--;}while(!Stk.empty())Stk.pop();cout<<endl;
}
signed Man(){for(register int i=2,top=0;i<=13000;++i){if(!Mark[i])Prime_List[++top]=i;for(register int j=1;j<=top&&i*Prime_List[j]<=13000;++j){Mark[i*Prime_List[j]]=1;if(!(i%Prime_List[j]))break;}}ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T;cin>>T;while(T--)Solve();return 0;
}

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

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

相关文章

Java [ 基础 ] Stream流 ✨

✨探索Java基础Stream流✨ 在现代Java编程中&#xff0c;Stream是一个非常强大的工具&#xff0c;它提供了一种更高效和简洁的方式来处理集合数据。在这篇博客中&#xff0c;我们将深入探讨Java中的Stream流&#xff0c;介绍它的基础知识、常见操作和一些实用示例。 什么是Str…

10-错误-java.lang.IllegalStateException Stopwatch is not running

10-错误-java.lang.IllegalStateException Stopwatch is not running 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;CodeZeng1998&#xff08;纯纯技术文&…

用易查分下发《致家长一封信》,支持在线手写签名,一键导出PDF!

暑假来临之际&#xff0c;学校通常需要下发致家长信&#xff0c;以正式、书面的形式向家长传达重要的通知或建议。传统的发放方式如家长签字后学生将回执单上交&#xff0c;容易存在丢失、遗忘的问题。 那么如何更高效、便捷、安全地将致家长一封信送达给每位家长呢&#xff1f…

Linux[高级管理]——Squid代理服务器的部署和应用(反向代理详解)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f468;‍&#x1f4bb;Linux高级管理专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月24日11点11分 &#x1f004;️文章质量&#xff1a;95分 目录 ————前言———— Squid的几种模式…

游戏录制视频软件哪个好?这份攻略帮你搞定!

随着游戏行业的快速发展&#xff0c;越来越多的玩家开始录制游戏视频&#xff0c;以便分享自己的游戏体验或保存珍贵回忆。而选择一款合适的游戏录制视频软件显得尤为重要。可是游戏录制视频软件哪个好呢&#xff1f;本文将为大家介绍两款优秀的游戏录制视频软件&#xff0c;通…

Vatee万腾平台:科技驱动,智慧生活

随着科技的飞速发展&#xff0c;我们生活的方方面面正在经历前所未有的变革。Vatee万腾平台&#xff0c;作为这一变革的推动者之一&#xff0c;以其科技驱动的理念&#xff0c;正引领我们迈向更加智慧、便捷的生活。 Vatee万腾平台&#xff0c;是一个集科技研发、应用创新、服务…

Unity热更方案HybridCLR+YooAsset,纯c#开发热更,保姆级教程,从零开始

文章目录&#xff1a; 一、前言二、创建空工程三、接入HybridCLR四、接入YooAsset五、搭建本地资源服务器Nginx六、实战七、最后 一、前言 unity热更有很多方案&#xff0c;各种lua热更&#xff0c;ILRuntime等&#xff0c;这里介绍的是YooAssetHybridCLR的热更方案&#xff0…

jvm性能监控常用工具

在java的/bin目录下有许多java自带的工具。 我们常用的有 基础工具 jar:创建和管理jar文件 java&#xff1a;java运行工具&#xff0c;用于运行class文件或jar文件 javac&#xff1a;java的编译器 javadoc&#xff1a;java的API文档生成工具 性能监控和故障处理 jps jstat…

鸿蒙应用更新跳转到应用市场

鸿蒙没有应用下载安装&#xff0c;只支持跳转到应用市场更新 gotoMarket(){try {const request: Want {parameters: {// 此处填入要加载的应用包名&#xff0c;例如&#xff1a; bundleName: "com.huawei.hmsapp.appgallery"bundleName: com.huawei.hmos.maps.app}}…

浅谈定时器之常数吞吐量定时器

浅谈定时器之常数吞吐量定时器 常数吞吐量定时器的主要目的是在JMeter测试中维持一个恒定的吞吐量&#xff08;通常是每分钟的请求数或事务数&#xff09;&#xff0c;从而确保测试能够以预期的负载水平运行。这对于模拟特定的用户访问模式、进行稳定性测试、负载测试以及压力…

量化交易 - 策略回测

策略回测 1、什么是策略回测&#xff1f;2、策略回测的作用3、策略回测系统概述3.1策略回测中相关的指标介绍3.2量化交易策略的资金容量3.3 完整的策略回测系统包含哪些内容 1、什么是策略回测&#xff1f; 策略回测&#xff0c;也称之为策略回溯测试&#xff0c;是指利用交易…

北京酒店订房小程序开发的优势与主要功能

随着我国经济与交通的飞速发展&#xff0c;人们出行的次数越来越多&#xff0c;频率也越来越快。无论是出差还是出游&#xff0c;人家对外出酒店的舒适度与便捷度的要求也越来越高。为了满足人们对于酒店的新需求&#xff0c;北京酒店订房小程序与互联网技术相结合&#xff0c;…

pbootcms后台获取前端表单留言页面url

pbootcms在线留言表单&#xff0c;用户在网页前端提交表单成功后&#xff0c;在网站后台如何获取表单留言页面的url这个参数呢&#xff1f;下面举例说明&#xff1a;首先&#xff0c;我们在PBootcms后台对应的表单&#xff0c;添加需要记录的表单字段&#xff0c;例如 添加liuy…

免费开源AI生产力工具:内置专属ChatGPT、一键智能处理图片和视频(擦除水印、卡通漫画、无损放大、插值补帧、智能修复、3D转制、上色修复、合成整理)

AI 生产力工具 免费开源&#xff0c;提升用户生产力&#xff0c;保障隐私和数据安全。提供高效便捷的AI解决方案&#xff0c;包括但不限于&#xff1a;内置专属ChatGPT、一键批量智能处理图片和视频等。 主要特点 免费开源&#xff1a;免费使用&#xff0c;源代码开放&#…

性价比高真无线蓝牙耳机有哪些?性价比真无线蓝牙耳机推荐

目前真无线蓝牙耳机的音质和性能已经越来越接近甚至超越传统有线耳机。然而&#xff0c;市面上的TWS耳机品牌和型号繁多&#xff0c;价格也从几十元到几千元不等&#xff0c;性价比自然成了消费者选择时的重要考量因素&#xff0c;究竟哪些真无线蓝牙耳机既能够提供满意的音质和…

前沿重器[52] | 聊聊搜索系统5:召回:检索、粗排、多路召回

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享&#xff0c;从中抽取关键精华的部分和大家分享&#xff0c;和大家一起把握前沿技术。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。&#xff08;算起来&#xff0c;专项启动已经…

Windows定时任务执行脚本

场景&#xff1a;由于网络波动原因导致云数据库没连接上&#xff0c;从而导致某个流程引擎链接不上数据库从而导致该流程引擎服务挂了&#xff0c;网络恢复后 数据库链接正常&#xff0c;但是该引擎服务还是中止状态。 解决方案&#xff1a;在Windows中新建一个定时任务&#…

为用户转出并处理MODIS NDVI数据案例过程记述,希望对大家有用!

最近为用户转出和处理了一次MODIS NDVI数据&#xff0c;我将过程做了个总结供大家参考&#xff01;希望能帮助到一些下载和处理数据的朋友! 使用工具为三个&#xff1a;地图资源工具 和 GIS数据转换器-栅格&#xff0c;qgis。 1.选择【数据下载功能】&#xff0c;然后选择MO…

复制 pdf 的表格到 markdown 版本的Typora 或者 word 中

在 pdf 中选中复制表格内容&#xff0c;直接粘贴到 typora 中失败&#xff0c;可以使用 txt文件和 excel 做过渡。 准备一个空的 txt 文件&#xff0c;将 pdf 中表格的数据复制粘贴到txt文件中&#xff0c;文本内容会以空格分开&#xff0c;如下图的形式&#xff1a; 打开 exc…

firewalld防火墙转发流量到其他端口forward port rules

假设云主机eth0: 47.93.27.106 tun0: inet 10.8.0.1 netmask 255.255.255.0 Show rules for a specific zone (public) sudo firewall-cmd --zonepublic --list-all Add the tun0 interface to the public zone: sudo firewall-cmd --zonepublic --add-interfacetun0 --…