反素数 51Nod1060 最复杂的数
来源:互联网 发布:java项目遇到最大困难 编辑:程序博客网 时间:2024/06/05 15:40
传送门:点击打开链接
题意:把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数。
例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6。如果有多个数复杂度相等,输出最小的。
思路:原来,这个叫反素数。
反素数的详细介绍看这里点击打开链接
有了反素数的性质,我们就能DFS搜了
#include <map>#include <set>#include <cmath>#include <ctime>#include <stack>#include <queue>#include <cstdio>#include <cctype>#include <bitset>#include <string>#include <vector>#include <cstring>#include <iostream>#include <algorithm>#include <functional>#define fuck(x) cout<<"["<<x<<"]";#define FIN freopen("input.txt","r",stdin);#define FOUT freopen("output.txt","w+",stdout);//#pragma comment(linker, "/STACK:102400000,102400000")using namespace std;typedef long long LL;typedef pair<int, int> PII;const int MX = 1e2 + 5;const int INF = 0x3f3f3f3f;int ans;LL id, n;int prime[MX], psz, vis[MX];void prime_init() { vis[1] = 1; for(int i = 2; i < MX; i++) { if(vis[i]) continue; prime[++psz] = i; for(int j = 2 * i; j < MX; j += i) vis[j] = 1; } psz = 17;}void DFS(LL s, int cnt, int p, int bo) { if(cnt > ans || (cnt == ans && s < id)) { ans = cnt; id = s; } for(int i = 1; i <= bo && (double)s * prime[p] <= n; i++) { s *= prime[p]; DFS(s, cnt * (i + 1), p + 1, i); }}int main() { prime_init(); //FIN; int T; scanf("%d", &T); while(T--) { scanf("%I64d", &n); ans = id = 1; DFS(1, 1, 1, 100); printf("%I64d %d\n", id, ans); } return 0;}
0 0
- 反素数 51Nod1060 最复杂的数
- 【51nod1060】【最复杂的数】【数论】【反素数】【搜索】【结论】
- 【51Nod1060】最复杂的数
- 51nod1060(最复杂的数)
- 51nod 1060:最复杂的数 反素数
- 51nod 1060 最复杂的数(反素数)
- 51nod 1060 最复杂的数(反素数)
- 51nod 最复杂的数(反素数)
- 51nod-1060 最复杂的数(反素数)
- 51NOD 1060 最复杂的数 【反素数】
- 51nod 1060 最复杂的数 反素数
- 51nod 1060 最复杂的数(反素数)
- 51nod 1060 最复杂的数(反素数)
- 51nod 1060 最复杂的数(数论:反素数)
- 51NOD 最复杂的数 暴力(反素数)
- 1060 最复杂的数(反素数)
- 51nod-1060:最复杂的数(反素数与因数个数计算)
- 51Nod-1060-最复杂的数(反素数)
- Android控件 webView
- 方法的继承,覆写和重载
- 软件
- C#WindowsMediaPlayer的属性
- Nginx开机启动设置
- 反素数 51Nod1060 最复杂的数
- 【React Native开发】React Native移植原生Android项目(Mac用)
- system V 消息队列的用法
- 单例模式
- 网站建设(4)——服务器的选择和购买
- Android 设定横屏,禁止屏幕旋转,Activity重置
- Java千百问_04异常处理(002)_java如何捕获异常
- Stanford 机器学习笔记 Week11 Application Example: Photo OCR
- VMware中CentOS设置静态IP