首页 > 其他分享 >「ARC118C」 Coprime Set

「ARC118C」 Coprime Set

时间:2024-12-20 15:33:29浏览次数:4  
标签:Set ll long write Coprime 倍数 ARC118C

题意

给定 \(n\),构造一个长度为 \(n\) 的数组,满足任意两个数不互质且不相同,所有数的最大公因数为 \(1\),且每个数最大为 \(10000\)。

分析

这种限制了数的大小,不限制大小和位置关系的构造题有一个套路。

先找出几个最小的满足条件的数,然后找出延申的条件。

对于本题,当 \(n=3\) 时,有一组最简单的答案是 \(6,10,15\),它们分别是 \(2\times3,2\times 5,3\times5\)。

可以发现这三个数的倍数只要不是另外两个数的倍数都可以加入数组。

所以可以枚举这三个数的倍数,把符合条件的数保留。

总时间复杂度 \(O(n)\)。

Code

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
#define dbg(x) cout<<#x<<": "<<x<<"\n"
// static char buf[100],*p1=buf,*p2=buf,obuf[100],*p3=obuf;
// #define getchar() p1==p2&&(p2=(p1=buf)+fread(buf,1,100,stdin),p1==p2)?EOF:*p1++
// #define putchar(x) (p3-obuf<100)?(*p3++=x):(fwrite(obuf,p3-obuf,1,stdout),p3=obuf,*p3++=x)
inline ll read(){ll x=0,f=1;char c=getchar();while(c<48||c>57){if(c==45)f=0;c=getchar();}while(c>47&&c<58)x=(x<<3)+(x<<1)+(c^48),c=getchar();return f?x:-x;}
inline void write(ll x){if(!x){putchar(48);putchar(' ');return;}char top=0,s[40];if(x<0)x=-x,putchar(45);while(x)s[top++]=x%10^48,x/=10;while(top--)putchar(s[top]);putchar(' ');}
mt19937_64 rnd(chrono::system_clock::now().time_since_epoch().count());
const ll mod=1e9+7,maxn=1e5+5,maxt=505;
ll n;
vector<ll>q;
inline void solve(){
    n=read()-3;
    write(6),write(10),write(15);
    for(ll i=2;i*6<=10000&&q.size()<n;++i){
        q.push_back(i*6);
    }
    for(ll i=2;i*10<=10000&&q.size()<n;++i){
        if(i*10%6==0)continue;
        q.push_back(i*10);
    }
    for(ll i=2;i*15<=10000&&q.size()<n;++i){
        if(i*15%6==0||i*15%10==0)continue;
        q.push_back(i*15);
    }
    for(auto x:q)write(x);
}
signed main(){
    ll t=1;
    while(t--){
        solve();
    }
    // fwrite(obuf,p3-obuf,1,stdout);
    return 0;
}

标签:Set,ll,long,write,Coprime,倍数,ARC118C
From: https://www.cnblogs.com/run-away/p/18619377

相关文章

  • 数据结构之旅:红黑树如何驱动 Set 和 Map
    一、红黑树1、定义        红黑树是一种二叉搜索树,在每个节点上增加一个存储位表示结点的颜色(红色或者黑色)。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保不会有一条路径比其他路径长出两倍,因而这种树是一种接近平衡的。和AVL(平衡二叉搜索树......
  • 2024年,WinUI3 使用 AccountsSettingsPane 获取微软账户信息
    背景介绍:UWP应用可以使用AccountsSettingsPane调用系统UI实现授权登录功能,相比跳转到网页可以获得更流畅的体验。起动手写代码之前,看文档的介绍非常美好。只需要处理WebAccountProvider和WebTokenRequest对象就能完成授权登录,简直可以说是少有的清晰明了的文档。文档中......
  • Couldn't find a configuration setting named 'registry'
    1. 检查Yarn版本首先,检查你正在使用的Yarn版本。Yarn不同版本的配置方式有所不同,特别是从Yarn1.x升级到Yarn2.x(又称Berry)后,配置的方式发生了变化。可以使用以下命令来检查当前的Yarn版本:yarn--versionYarn1.x:如果你使用的是1.x版本,yarnconfigsetreg......
  • Map集合类和Set集合类介绍和题目演练
    Map集合的介绍、定义和特点Map是一种将键(key)映射到值(value)的对象。在Java中,它是一个接口,有像HashMap、TreeMap等多种实现类。定义:以键值对(key-value)的形式存储数据。键是唯一的,通过键可以快速查找、获取对应的值。例如,存储学生学号(键)和学生姓名(值)的信息集合。特点:键的唯一......
  • 【Redis篇】Set和Zset 有序集合基本使用
    目录Set基本命令saddSMEMBERSSISMEMBER SCARD返回值:SPOPSMOVESREM集合间操作交集: 并集:差集:​编辑 内部编码使用场景:Zset有序集合Zset基本命令ZADDZCARD ZCOUNT ZRANGEZREVRANGEZRANGEBYSCOREZPOPMAXBZPOPMAX​编辑ZPOPMINZRANKZREVRANK......
  • JetBrains PyCharm 低版本无限重置试用--插件:ide-eval-resetter-2.1.6.zip
    ......
  • npm ERR! network 'proxy' config is set properly. See: 'npm help config'
    执行npminstall@gcpaas/data-room-ui命令时报错在package.json这个文件里面添加 overrides这段代码"overrides":{"node-sass":"npm:sass@*","@gcpaas/data-room-ui":{"node-sass":"npm:sass@*"......
  • 关于QFramework UIKit和ResKit生成的UI预制体打包后报错Failed to Create Res. Not Fi
     使用UIKit创建UIPrefb后打包发布后提示FailedtoCreateRes.NotFindByResSearchKeys:AssetName:basepanelBundleName:TypeName:UnityEngine.GameObject,找不到所需资源。下方如图1-1的报错。图1-1问题原因:一开始以为是没有按照教程所说的流程来创建。按照教程所说......
  • 海山数据库(He3DB)源码解读:T_DropRoleSetStmt原理浅析
    一、概述  DropRoleStmt表示删除角色的DDL语句。。二、DropRole命令的执行流程PostgresMainexec_simple_query→执行简单的SQL查询;StartTransactionCommand→开始事务;pg_parse_query→解析为内部的抽象语法树(AST);PortalRunstandard_ProcessUtility→权限......
  • QT使用promoted后样式(setStyleSheet)不生效
    1.理解promoted(提升)在Qt中的概念在QtDesigner中,“提升(Promoted)”是一种机制,它允许你使用自定义的部件类来替代标准的Qt部件类。这在你已经创建了一个从标准Qt部件(如QListWidget)派生的自定义部件(如ListMenu)并且希望在设计器环境中使用它时非常有用。2.样式不生效的......