CF1419E-Decryption【数论,dfs】
正题
题目链接: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】相关推荐
- 数论+dfs+复数除法剪枝 Secret Code hdu1111
X = a0 + a1B + a2B2 + ...+ anBn. (其实是B^2....这个坑人) 满足复数除法的剪枝真的是强大啊 枚举每一个ai, 然后 除复数B, 这里剪枝,判断是否可以整除,复数 ...
- zcmu 1978: 调酒壶里的酸奶(数论+dfs)
[题目] 1978: 调酒壶里的酸奶 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 173 Solved: 48 [Submit][Status][ ...
- 【Java版oj】day14计算日期到天数转换、幸运的袋子
目录 一.计算日期到天数转换 (1)原题再现 (2)问题分析 (3)完整代码 二.幸运的袋子 (1)原题再现 (2)问题分析 (3)完整代码 一.计算日期到天数转换 (1)原题再现 计算日期到天数转换 ...
- 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 算法之数论应用篇(二)
算法之数论应用篇二 最大公约数 线性筛 Hankson的趣味题 欧拉函数 前言 可见的点(数学知识+欧拉函数) 最大公约数(可见的点扩展) 同余 取模的性质 定义 基本性质 运算规则 重要定理 重要定 ...
- 算法之基础数论应用篇(一)
基础数论应用篇 子集和 题目描述 筛质数 筛质数模板 欧拉筛 线性筛 哥德巴赫猜想 夏洛克和他的女朋友 二次筛法 分解质因数 试除法分解质因数 分解阶乘质因子 快速幂 模板 快速幂 快速乘法 序列的第 ...
- 2019ICPC(上海) - Counting Sequences I(dfs打表)
题目链接:点击查看 题目大意:对于n>1,求的长度为n的数组个数 题目分析:因为长度为n的数组中,组成数字相同但排列组合不同的数组,不算同一种情况,所以我们在求出一种满足条件的数组后,需要考虑所 ...
- 数论四之综合训练——Magic Pairs,Crime Management,Top Secret,组合数问题
数论综合训练 Magic Pairs problem solution code CF107D Crime Management problem solution code UVA12183 Top ...
- 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_+, ...
最新文章
- ESXi 6.5 进入维护模式死机在68%的进度的bug
- 错误时自动退出bash shell脚本[重复]
- [Z]为Web程序员解毒:9个IE常见Bug的解决方案
- 通过一个图来简单描述一下 socket 链接建立以及通信的模型
- springboot----静态页面templates文件访问
- input 中的autoComplete属性
- 计算机二级vb2003年4月考试题,2003年4月全国计算机等级考试二级vb笔试真题附答案...
- linux双网卡架设FTP,LINUX系统上架设FTP服务器
- 千年虫← 2000, 2020→千年虫现身Splunk 平台,立即修复!
- ELK详解(十)——Logstash收集Tomcat日志实战
- matlab6.5版本和matlab7版本以上的区别
- MODIS数据介绍及下载
- JAVA毕业设计源码带论文和答辩、大作业、实例程序源码下载合集【56套】
- 超市库存管理java sql_超市仓库管理系统的设计与实现(MySQL)
- 医院时钟系统,NTP子钟,网络子母钟系统,ntp子母钟,网络子母钟——为您的系统保驾护航
- Good Luck in CET-4 Everybody! (巴什博弈 bash game)
- 【数学建模】模糊数学运算——python实现各类运算
- 【Java】IntellIDEA软件的安装
- 西北乱跑娃 --- windows下kill进程
- Visio,SmartDraw,和EPS格式图形
热门文章
- android activity解耦,Android与设计模式:用单一职责原则为Activity解耦
- 计算机录取高考生过程,解密高考录取过程:人机结合 打造“阳光高招”
- 算法设计与分析——递归与分治——归并排序
- [Spring5]IOC容器_Bean管理注解方式_组件扫描配置细节
- [JavaWeb-MySQL]多表查询练习
- [PAT乙级]1033 旧键盘打字(getline()读入)
- hdu4841 圆桌问题-vector容器模拟
- C++vector容器-互换容器
- 数据结构与算法--二叉树实现原理
- 数据结构-查找-总结归纳知识点