城市中人们总是拿着号码牌,不停寻找,不断匹配,可是谁也不知道自己等的那个人是谁。

可是燕姿不一样,燕姿知道自己等的人是谁,因为燕姿数学学得好!燕姿发现了一个神奇的算法:假设自己的号码牌上写着数字 S,那么自己等的人手上的号码牌数字的所有正约数之和必定等于 S。

所以燕姿总是拿着号码牌在地铁和人海找数字(喂!这样真的靠谱吗)可是她忙着唱《绿光》,想拜托你写一个程序能够快速地找到所有自己等的人。

Solution

分析约数和的式子(1+p1+p1^2+...+p1^a1)*(1+p2+p2^2+...+p2^a2)*...*(1+pk+pk^2+...+pk^ak)。

本题需要输出所有答案,可以猜测答案不是很多。

我们可以枚举所有的p和他们的指数进行搜索。

我们先定p的范围是根号1e5.

但这样会漏掉很多答案。

观察到大与根号的指数次数最多是一。

所以每次搜的时候判一下有没有大质数。

Code

#include<iostream>
#include<cstdio>
#include<algorithm>
#define N  100002
#define NN 100000
using namespace std;
typedef long long ll;
int prime[N],vis[N],s,ans,k,st[N],tot;
bool pd(int x){if(x==1) return false;if(x<=NN) return !vis[x];for(int i=1;i<=tot&&(ll)prime[i]*prime[i]<=x;i++)if(x%prime[i]==0) return false;return true;
}
void dfs(int la,int num,int num1){if(num==1){st[++ans]=num1;return;}if(num-1>prime[la]&&pd(num-1))st[++ans]=(num-1)*num1;for(int i=la+1;i<=tot&&prime[i]*prime[i]<=num;++i)for(ll j=prime[i],t=prime[i]+1;t<=num;j*=prime[i],t+=j){if(num%t==0)dfs(i,num/t,num1*j);}
}
int main(){for(int i=2;i<=NN;++i){if(!vis[i])prime[++tot]=i;for(int j=1;j<=tot&&(k=i*prime[j])<=NN;++j){vis[k]=1;if(i%prime[j]==0)break;}}while(scanf("%d",&s)!=EOF){ans=0;dfs(0,s,1);printf("%d\n",ans);sort(st+1,st+ans+1);if(ans){for(int i=1;i<=ans;++i)printf("%d ",st[i]);printf("\n");}}return 0;
}

#include<iostream>
#include<cstdio>
#include<algorithm>
#define N  100002
#define NN 100000
using namespace std;
typedef long long ll;
int prime[N],vis[N],s,ans,k,st[N],tot;
bool pd(int x){if(x==1) return false;if(x<=NN) return !vis[x];for(int i=1;i<=tot&&(ll)prime[i]*prime[i]<=x;i++)if(x%prime[i]==0) return false;return true;
}
void dfs(int la,int num,int num1){if(num==1){st[++ans]=num1;return;}if(num-1>prime[la]&&pd(num-1))st[++ans]=(num-1)*num1;for(int i=la+1;i<=tot&&prime[i]*prime[i]<=num;++i)for(ll j=prime[i],t=prime[i]+1;t<=num;j*=prime[i],t+=j){if(num%t==0)dfs(i,num/t,num1*j);}
}
int main(){for(int i=2;i<=NN;++i){if(!vis[i])prime[++tot]=i;for(int j=1;j<=tot&&(k=i*prime[j])<=NN;++j){vis[k]=1;if(i%prime[j]==0)break;}}while(scanf("%d",&s)!=EOF){ans=0;dfs(0,s,1);printf("%d\n",ans);sort(st+1,st+ans+1);if(ans){for(int i=1;i<=ans;++i)printf("%d ",st[i]);printf("\n");}}return 0;
}

转载于:https://www.cnblogs.com/ZH-comld/p/9596448.html

[JLOI2014]聪明的燕姿(搜索)相关推荐

  1. [BZOJ 3629][JLOI2014]聪明的燕姿

    传送门 \(\color{green}{solution}\) 爆搜题 /**************************************************************P ...

  2. 一本通1629聪明的燕姿

    1629:聪明的燕姿 时间限制: 1000 ms         内存限制: 524288 KB [题目描述] 城市中人们总是拿着号码牌,不停寻找,不断匹配,可是谁也不知道自己等的那个人是谁. 可是燕 ...

  3. 2017.9.11 聪明的燕姿 失败总结

    这题有毒.如假包换的爆搜 只要知道一个数的约数加起来=分解质因数后每个  质因数1~pi次前缀和  相乘的结果 就好 做(sou)了 所以如果知道约数和,就可以枚举质因数来爆搜 必须剪枝到极致才能过, ...

  4. 十条技巧 更聪明地使用Google搜索

    来源:IT168 Google是一个非常精密成熟的搜索引擎,但大多数的用户都没有能完全地利用到它的能力.一般人就是在Google的搜索框中输入一两个关键字,然后点击"搜索"按钮,等 ...

  5. YBT 6 数学基础

    $补+写题ing$ 第 1 章 快速幂 序列的第 k 个数 link $solution:$ 板子 A 的 B 次方 link $solution:$ 板子 [NOIP2013] 转圈游戏 link ...

  6. 算法笔记——数学相关

    算法笔记--数学相关 高精度 乘法逆元 排列组合 二项式定理 质数的判定和应用 约数 拓展欧几里得 大步小步算法(BSGS) 拓展大步小步算法 快速乘和快速幂 矩阵相关 欧拉函数 欧拉定理及费马小定理 ...

  7. Noip前的大抱佛脚----赛前任务

    赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...

  8. [颓废史]蒟蒻的刷题记录

    QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...

  9. 退役前的做题记录2.0

    退役前的做题记录2.0 最近在刷省选题......大致上是按照省份刷的. 不过上面的题目顺序是按照写题的顺序排列的,所以可能会有点乱哈. [BZOJ2823][AHOI2012]信号塔 最小圆覆盖,随 ...

最新文章

  1. java -jar 未响应_Java 方法性能监控和统计工具 MyPerf4J
  2. FBL3N/FBL3H/FAGLL03/FAGLL03H的区别
  3. ExtJS 4.2菜单
  4. eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任务
  5. Windows Server 2008 R2x64 IIS7+PHP5.6 错误 500.0
  6. 深度学习100例 | 第33天:迁移学习-实战案例教程
  7. 23 Refs的应用场景与选用思考
  8. ORB-SLAM2图像预处理流程概括
  9. des vue 加密解密_vue DES 加密
  10. HTMl文件的阶层架构 访问父元素和子元素
  11. java map size 不准确_java1.7以前ConcurrentHashMap的size方法
  12. oracle instant imp,使用instantclient连接oracle数据库
  13. 怎样在Apple Silicon M1 Mac上引导到恢复模式
  14. AtCoder Beginner Contest 162 D.RGB Triplets
  15. 2022 Gartner RPA魔力象限发布,两家国产厂商入选,超自自动化成重点
  16. 【Rust日报】2022-12-04 比较 u64 与比较字符串的性能
  17. U盘盘符显示不出来了,纠结(已解决)
  18. html%3ca%3e标签中有变量,经过代码审计找出网站中的XSS漏洞实战(三)
  19. ⭐算法入门⭐《堆》中等01 —— LeetCode 面试题 17.09. 第 k 个数
  20. 北京船空航天大学计算机学院,北京航空航天大学

热门文章

  1. Kafka+Storm+HDFS整合实践
  2. linux常用命令汇总(pwd,echo,history,nano)
  3. 开源的DevOps开发工具箱
  4. mySQL教程 第5章 插入 更新与删除数据
  5. superset可视化-country map
  6. 《Non-invasive Fetal ECG Signal Quality Assessment for Multichannel Heart Rate Estimation》论文解读-废弃
  7. sqoop把mysql数据导入hbase-完整记录
  8. Flask碰到 原因:CORS 头缺少 'Access-Control-Allow-Origin'解决方案 解决
  9. kaggle中的Two-Stage比赛规则以及metadata数据的使用规定
  10. 线性代数导论2——矩阵消元