51nod1060(反素数&dfs)】的更多相关文章

题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1060 题意:中文题诶- 思路: 这里用到了反素数的性质: 对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0 < i < x),都有g(i) < g(x),则称x为反素数. 性质: No.1 一个反素数的质因子必然是从2开始连续的质数. No.2 p=2^t1*3^t2*5^t3*7^t4…
传送门 参考资料: [1]:https://blog.csdn.net/acdreamers/article/details/25049767 题意: 输入两个数 type , k: ①type = 0,求[1,262]中的因子个数为 k 的反素数,如果求解的答案 > 262,输出"INF": ②type = 1,求使得 num-factor[num] = k 的最小的num: 题解: 只有当 type = 1 时,才有可能输出 "Illegal": 那,什么…
1053: [HAOI2007]反素数ant 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1053 Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6等都是反质数. 现在给定一个数N,你能求出不超过N的最大的反质数么? Input 一个数N(1<=N<=2,000,00…
1060 最复杂的数 题目来源: Ural 1748 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数.   例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6.如果有多个数复杂度相等,输出最小的. Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 100) 第2 - T + 1行:T个数,表示需要计算的n.(1 &…
题目链接:https://www.luogu.org/problemnew/show/P1463 题意: 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6等都是反质数. 现在给定一个数N,你能求出不超过N的最大的反质数么? 题解: 对于一个反素数p有两个结论: 若将p表示为 ∏(a[i]^k[i])的形式,其中a[i]为质因子,k[i]为指数. (1)a[i]为从2…
题目传送门 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6等都是反质数. 现在给定一个数N,你能求出不超过N的最大的反质数么?(N<=2000000000) $Sol$ 首先我们需要知道一个数约数的个数.这个是算术基本定理的推论,这里就不再赘述了,这儿稍微提了一句. 之后因为N在2e9内,所以它至多有10个质因子. 再次,我们要满足质因子从小到大的…
[luogu]P1463 [SDOI2005]反素数ant ——!x^n+y^n=z^n 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6等都是反质数. 现在给定一个数N,你能求出不超过N的最大的反质数么? 输入输出格式 输入格式: 一个数N(1<=N<=2,000,000,000). 输出格式: 不超过N的最大的反质数. 输入输出样例 输入样…
题意: 求因数个数为n的最小正整数k. n<=10^9输出其唯一分解形式 SOL: 模拟题,一眼看过去有点惊讶...这不是我刚看过的反素数吗... 咦数据怎么这么大,恩搞个高精吧... 于是T了... 真是丝帛...因为这题不用输出答案而是输出质因子与指数,那么高精也没什么卵用... 想想我们在反素数的时候除了记录还要做一件什么事呢...比较答案与当前搜索的大小...但这里是在太大了,所以就要找一个更小的通用比较方法... 傻逼想到了高精,帅的人都用了log log由于其良好的性质log(a*b…
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3085 题意:求n(<=10^100)之内最大的反素数. 思路: 优化2: int prime[]= { 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101,103,107,109, 113,127,131,137,139, 14…
题意:给定一个数N,求小于等于N的所有数当中,约数最多的一个数,如果存在多个这样的数,输出其中最大的一个. 分析:反素数定义:对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0<i<x),都有g(i)<g(x),则称x为反素数. 性质一:一个反素数的质因子必然是从2开始连续的质数.性质二:p=2^t1*3^t2*5^t3*7^t4.....必然t1>=t2>=t3>=.... 那题题目相当于求解小于等于N中,…
搜索 经典搜索题目(其实是蒟蒻只会搜……vfleaking好像有更优秀的做法?) 枚举质数的幂,其实深度没多大……因为$2^32$就超过N了……而且质数不能取的太大,所以不会爆…… /************************************************************** Problem: 1053 User: Tunix Language: C++ Result: Accepted Time:40 ms Memory:1760 kb ************…
题意:给定一个数N,求小于等于N的所有数当中,约数最多的一个数,如果存在多个这样的数,输出其中最小的一个.(1 <= n <= 10^16) 题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=11781 这时一道反素数的应用. 反素数讲解:http://blog.csdn.net/ACdreamers/article/details/25049767 反素数的定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满…
51nod有一道类似的题...我至今仍然不会写暴搜!!! #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define rep(i,s,t) for(int i=s;i<=t;i++) #define dwn(i,s,t) for(int i=s;i>=t;i--) #define clr(x,c) me…
1053: [HAOI2007]反素数ant Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1346  Solved: 732[Submit][Status] Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6等都是反质数. 现在给定一个数N,你能求出不超过N的最大的反质数么? Input 一个…
1053: [HAOI2007]反素数ant Description: g(x)表示x的约数个数,反素数:对于任意的i (i < x),均有g(i) < g(x),则x为反素数:现在输入不超过2e9的数,要你找出不超过N的最大的反素数: 坑点:里面的反素数是严格小于,所以对于相同的约数要取较小的. 思路:直接深搜外加剪枝即可: #include<iostream> #include<cstdio> #include<cstring> #include<…
题目链接:BZOJ 1053 想一想就会发现,题目让求的 1 到 n 中最大的反素数,其实就是 1 到 n 中因数个数最多的数.(当有多于一个的数的因数个数都为最大值时,取最小的一个) 考虑:对于一个整数 n ,如何求 n 的因数的个数? 将 n 分解质因数,n = p1^a1 * p2^a2 * p2^a3 * ...... * px^ax .(其中 pi 为质因数, ai 为质因数的指数) 那么 n 的因数的个数为 :Π (ai+1)     (使用组合数学的知识很容易看出) 那么我们想要找…
1053: [HAOI2007]反素数ant Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1948  Solved: 1094[Submit][Status][Discuss] Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6等都是反质数.现在给定一个数N,你能求出不超过N的最大的反质数么?…
题目大意:求n以内因子数量最多的数  n的范围为1e16 其实相当于求n以内最大的反素数... 由素数中的 算数基本原理 设d(a)为a的正因子的个数,则 d(n)=(a1+1)(a2+1).....*(an+1); 又由反素数的性质2: p=2^t1*3^t2*5^t3*7^t4.....必然t1>=t2>=t3>=.... 我们可以指定搜索策略和剪枝 详见代码和注释 #include <iostream> #include<stdio.h> #include&…
CodeForces - 27E Number With The Given Amount Of Divisors Submit Status Description Given the number n, find the smallest positive integer which has exactly n divisors. It is guaranteed that for the given n the answer will not exceed 1018. Input The…
1053: [HAOI2007]反素数ant Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3480  Solved: 2036[Submit][Status][Discuss] Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0<i<x ,则称x为反质数.例如,整数1,2,4,6等都是反质数.现在给定一个数N,你能求出不超过N的最大的反质数么…
Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6等都是反质数. 现在给定一个数N,你能求出不超过N的最大的反质数么? Input 一个数N(1<=N<=2,000,000,000). Output 不超过N的最大的反质数. Sample Input 1000 Sample Output 840 题解 拿到题首先准确无误地题干看错,…
反素数: 对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整 数,都有,那么称为反素数. 有两个特点: 1.一个反素数的质因子必是从2开始的质数 2.如果,那么必有 最常见的问题如下: (1)给定一个数,求一个最小的正整数,使得的约数个数为 (2)求出中约数个数最多的这个数 即是通过搜索建立一个搜索树,递归出合适的所有的情况,再加上剪枝. ZOJ2562 题意: 给定一个数N,求小于等于N的所有数当中,约数最多的一个数,如果存在多个这样的数,输出其中最大的一个. #inclu…
题目大意:给定 \(N < 2e9\),求不超过 N 的最大反素数. 题解: 引理1:不超过 2e9 的数的质因子分解中,最多有 10 个不同的质因子,且各个质因子的指数和不超过30. 引理2:题目要求的最大反素数,实际上是求不超过 N 的数中因子数最多的数的集合中最小的那个数. 引理3:通过引理 2 以及交换证明法可以得出,各个质因子指数必须单调递减. 代码如下 #include <bits/stdc++.h> using namespace std; int n,cnt[15]; l…
//约数 /* 求n的正约数集合:试除法 复杂度:O(sqrt(n)) 原理:扫描[1,sqrt(N)],尝试d能否整除n,若能,则N/d也能 */ ],m=; ;i*i<=n;i++){ ){ factor[++m]=i; if(i!=n/i) factor[++m]=n/i; } } /* 求[1,n]每个数的正约数集合:倍数法 复杂度:O(nlogn) 原理:对于每个数d,[1,n]中以d为约数的数就是d的倍数 */ vector<]; ;i<=n;i++) ;i*j<=n;…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 传送门 - BZOJ1053 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6等都是反质数.现在给定一个数N,你能求出不超过N的最大的反质数么? (1<=N<=2,000,000,000) 题解 对于任何一个数 $p$ ,令 $p=\prod_\limits{i\in \{…
BZOJ1053 反素数ant 我们先考虑唯一分解定理求出约数个数: \(x=a_1^{p_1}a_2^{p_2}a_3^{p_3}...a_k^{p_k}\) 然后\(num=\Pi_{i=1}^k{p_i+1}\) 2,000,000,000中不同的素数因子大概是11个. 直接爆搜答案就好了. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include…
反素数 Antiprime 题目描述 原题来自:POI 2001 如果一个大于等于 1 的正整数 n,满足所有小于 n 且大于等于 1 的所有正整数的约数个数都小于 n 的约数个数,则 n 是一个反素数.譬如:1, 2, 4, 6, 12, 24,它们都是反素数. 请你计算不大于 n 的最大反素数. 输入格式 一行一个正整数 n. 输出格式 只包含一个整数,即不大于 n 的最大反素数. 样例 样例输入 1000 样例输出 840 数据范围与提示 对于 10% 的数据,1≤n≤103: 对于 40…
[BZOJ1053][HAOI2007]反素数(搜索) 题面 BZOJ 洛谷 题解 大力猜一下用不了几个质因子,那么随便爆搜一下就好了. #include<iostream> #include<cstdio> using namespace std; int pri[15]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43}; int ans,d,n; void dfs(int x,int s,int D) { if(x==15){if(d<D…
[BZOJ1053][HAOI2007]反素数 题面 bzoj 洛谷 题解 可以从反素数的定义看出小于等于\(x\)的最大反素数一定是约数个数最多且最小的那个 可以枚举所有的质因数来求反素数,但还是跑不过 我们又想,质因数不可能太大 而\(37\)内素数相乘已经大于\(2*10^9\)了 所以枚举到\(37\)就可以了 代码 #include <iostream> #include <cstdio> #include <cstdlib> #include <cst…
题目链接 对于任意的正整数\(x\),记其约数的个数为\(g(x)\).现在定义反素数:对于\(0<i<x\),都有\(g(x)>g(i)\),那么就称x为反素数. 现在给定一个数N,满足\(1\leq N\leq 2*10^9\),求出不超过\(N\)的最大的反素数.   由反素数的定义我们知道,若\(x\)为反素数,那么\(x\)肯定是具有相同约数个数的数中最小的那一个:并且x的约数个数应该是最多的. 很明显直接枚举肯定要炸.观察到\(N\)不会超过\(2*10^9\),那么就可以知…