反素数学习_The Most Complex Number
来源:互联网 发布:java最常用的设计模式 编辑:程序博客网 时间:2024/04/30 13:29
题目链接
先说一下反素数:(引自百度百科)
基本概念
定义
对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0<i<x),都有g(i)<g(x),则称x为反素数.
性质
性质一:一个反素数的质因子必然是从2开始连续的质数.
性质二:p = 2^p1 * 3^p2 * 5^p3 * 7^p4..... 必然p1>=p2>=p3>=....
这两条性质决定了搜索复杂度不会很高
想了想大概的证明:对于1-x的反素数n,可以表示为a1^p1 * a2^p2 * .... an^pn
1.假如a不连续,即存在ai 和 ai+1在素数表中不相邻,那么总可以把ai+1换成比ai大的最小的素数,仍然使得结果不变.得证
2.假如pi < pj (i < j),那么将ai与aj的个数对调,结果也不变,得到的数减少.得证
int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 47, 53, 57};LL ipt, dfs_n, dfs_ans;int maxfac;void dfs(int index, int cnt, int pre, int ans, LL mul){ if (cnt == maxfac || mul > ipt / prime[index]) { if (ans > dfs_ans) { dfs_ans = ans; dfs_n = mul; } if (ans == dfs_ans && mul < dfs_n) { dfs_n = mul; } return; } LL t = prime[index]; FE(i, 1, min(pre, maxfac - cnt)) { if (mul > ipt / t) return; dfs(index + 1, cnt + i, i, ans * (i + 1), mul * t); if (t > ipt / prime[index]) break; t *= prime[index]; }}int main(){ int kase; RI(kase); while (kase--) { dfs_ans = -1; scanf("%I64d", &ipt); maxfac = (int)log2(ipt * 1.0); dfs(0, 0, INF, 1, 1); printf("%I64d %I64d\n", dfs_n, dfs_ans); } return 0;}
- 反素数学习_The Most Complex Number
- Ural 1748. The Most Complex Number DFS+反素数
- 反素数The Most Complex Number 搜索+剪枝
- URAL 1748. The Most Complex Number(反素数)
- 反素数应用 ZOJ 2562 More Divisors + Timus OJ 1748. The Most Complex Number
- URAL 1748 The Most Complex Number 深度优先搜索 反素数
- timusoj 1748. The Most Complex Number (反素数&剪枝) 好题
- TIMUS-1748. The Most Complex Number-求反素数(数学+搜索)
- URAL 1748 The Most Complex Number 【区间最大反素数(模板)】
- 1748. The Most Complex Number/LG的数学计划~~~持续更新ing(反素数求解)
- 【 TIMUS-1748】【数学+搜索】The Most Complex Number【求反素数,数据范围较大】
- URAL-1748 The Most Complex Number
- URAL - 1748 The Most Complex Number(数论+搜索)
- 反素数学习
- poj 2886 who get the most candies? 约瑟夫+反素数
- PKU2886(Who Gets the Most Candies?)线段树+反素数
- Who Gets the Most Candies?+POJ+线段树+反素数
- POJ_2886_Who Gets The Most Candies_线段树+反素数
- 仿扇形菜单动画效果
- MFC实现画图工具中画线功能(三)
- 神庙逃亡
- 通过SQL Server Profiler来监视分析死锁
- Android获取网络图片
- 反素数学习_The Most Complex Number
- HTTP协议详解
- POJ 3126 水 图
- CF 354C
- Problem 2123 数字的孔数 (简单题目)
- 如何用代码检测一个软件是否被授权了root权限
- C#运算符的重载
- redis数据类型之list
- 【FTP服务器之】ubuntu下FTP服务器vsftpd安装与配置