正题

题目链接:https://www.luogu.com.cn/problem/CF1419E


题目大意

nnn的所有约数排成一个圈,求一个顺序使得相邻的互质的数最少。


解题思路

质因数分解后,我们考虑每个质因数之间填什么。对于两个质因数a,ba,ba,b。显然a∗ba*ba∗b也是nnn的约数,也就是aaa与bbb之间必定有一个可以填进去的数。

显然对于每个质因数也是如此,一般的,我们对于分解出来的pcp^cpc和p′c′p'^{c'}p′c′我们可以在将pk(1≤k≤c)p^k(1\leq k\leq c)pk(1≤k≤c)都填在一起,然后在之后填上具有ppp和p′p'p′因子的所有没有填过的约数。特别的,nnn要填在最后面(拼接第一个和最后一个质因子)。

然后对于只有两个不同的质因子a,ba,ba,b的数,我们不难发现a∗b=na*b=na∗b=n也就是nnn没有办法填在最后,此时互质数为111,其他都为000


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=2e5+10;
ll T,n,p[N],v[N],cnt;
void dfs(ll dep,ll x){if(x==n||dep>cnt&&x==1)return;if(dep>cnt){printf("%lld ",x);return;}ll w=p[dep],z=1;if(x==1){for(ll i=1;i<=v[dep];i++)z*=w;for(ll i=v[dep];i>=0;i--)dfs(dep+1,x*z),z/=w;}else{for(ll i=0;i<=v[dep];i++)dfs(dep+1,x*z),z*=w;}
}
int main()
{scanf("%lld",&T);while(T--){scanf("%lld",&n);ll x=n,z=0;cnt=0;for(ll i=2;i*i<=x;i++){if(x%i==0){p[++cnt]=i;while(x%i==0)x/=i,v[cnt]++,z++;}}if(x!=1){bool flag=1;for(ll i=1;i<=cnt;i++)if(p[i]==x){flag=0;break;}if(flag){p[++cnt]=x;v[cnt]++;z++;}}dfs(1,1);printf("%lld\n",n);if(z==2&&cnt==2)printf("1\n");else printf("0\n");for(ll i=1;i<=cnt;i++)v[i]=0;}
}

CF1419E-Decryption【数论,dfs】相关推荐

  1. 数论+dfs+复数除法剪枝 Secret Code hdu1111

    X = a0 + a1B + a2B2 + ...+ anBn. (其实是B^2....这个坑人) 满足复数除法的剪枝真的是强大啊 枚举每一个ai, 然后 除复数B, 这里剪枝,判断是否可以整除,复数 ...

  2. zcmu 1978: 调酒壶里的酸奶(数论+dfs)

    [题目] 1978: 调酒壶里的酸奶 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 173  Solved: 48 [Submit][Status][ ...

  3. 【Java版oj】day14计算日期到天数转换、幸运的袋子

    目录 一.计算日期到天数转换 (1)原题再现 (2)问题分析 (3)完整代码 二.幸运的袋子 (1)原题再现 (2)问题分析 (3)完整代码 一.计算日期到天数转换 (1)原题再现 计算日期到天数转换 ...

  4. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  5. 算法之数论应用篇(二)

    算法之数论应用篇二 最大公约数 线性筛 Hankson的趣味题 欧拉函数 前言 可见的点(数学知识+欧拉函数) 最大公约数(可见的点扩展) 同余 取模的性质 定义 基本性质 运算规则 重要定理 重要定 ...

  6. 算法之基础数论应用篇(一)

    基础数论应用篇 子集和 题目描述 筛质数 筛质数模板 欧拉筛 线性筛 哥德巴赫猜想 夏洛克和他的女朋友 二次筛法 分解质因数 试除法分解质因数 分解阶乘质因子 快速幂 模板 快速幂 快速乘法 序列的第 ...

  7. 2019ICPC(上海) - Counting Sequences I(dfs打表)

    题目链接:点击查看 题目大意:对于n>1,求的长度为n的数组个数 题目分析:因为长度为n的数组中,组成数字相同但排列组合不同的数组,不算同一种情况,所以我们在求出一种满足条件的数组后,需要考虑所 ...

  8. 数论四之综合训练——Magic Pairs,Crime Management,Top Secret,组合数问题

    数论综合训练 Magic Pairs problem solution code CF107D Crime Management problem solution code UVA12183 Top ...

  9. nssl1176-轨道【数论,Dp】

    正题 题目大意 给出n,m,kn,m,kn,m,k v=∏i=1nai(ai∈N+,ai<=m)k(gcd(v,k)=1)v=\frac{\prod_{i=1}^na_i(a_i\in N_+, ...

最新文章

  1. ESXi 6.5 进入维护模式死机在68%的进度的bug
  2. 错误时自动退出bash shell脚本[重复]
  3. [Z]为Web程序员解毒:9个IE常见Bug的解决方案
  4. 通过一个图来简单描述一下 socket 链接建立以及通信的模型
  5. springboot----静态页面templates文件访问
  6. input 中的autoComplete属性
  7. 计算机二级vb2003年4月考试题,2003年4月全国计算机等级考试二级vb笔试真题附答案...
  8. linux双网卡架设FTP,LINUX系统上架设FTP服务器
  9. 千年虫← 2000, 2020→千年虫现身Splunk 平台,立即修复!
  10. ELK详解(十)——Logstash收集Tomcat日志实战
  11. matlab6.5版本和matlab7版本以上的区别
  12. MODIS数据介绍及下载
  13. JAVA毕业设计源码带论文和答辩、大作业、实例程序源码下载合集【56套】
  14. 超市库存管理java sql_超市仓库管理系统的设计与实现(MySQL)
  15. 医院时钟系统,NTP子钟,网络子母钟系统,ntp子母钟,网络子母钟——为您的系统保驾护航
  16. Good Luck in CET-4 Everybody! (巴什博弈 bash game)
  17. 【数学建模】模糊数学运算——python实现各类运算
  18. 【Java】IntellIDEA软件的安装
  19. 西北乱跑娃 --- windows下kill进程
  20. Visio,SmartDraw,和EPS格式图形

热门文章

  1. android activity解耦,Android与设计模式:用单一职责原则为Activity解耦
  2. 计算机录取高考生过程,解密高考录取过程:人机结合 打造“阳光高招”
  3. 算法设计与分析——递归与分治——归并排序
  4. [Spring5]IOC容器_Bean管理注解方式_组件扫描配置细节
  5. [JavaWeb-MySQL]多表查询练习
  6. [PAT乙级]1033 旧键盘打字(getline()读入)
  7. hdu4841 圆桌问题-vector容器模拟
  8. C++vector容器-互换容器
  9. 数据结构与算法--二叉树实现原理
  10. 数据结构-查找-总结归纳知识点