嘟嘟嘟

做这道题得自己推出这么几个结论……

1.最大的反素数一定是约数个数最多的的数中最小的那个。

  这个其实很好想:根据定义,g(x)要大于任意的g(i),而不是大于等于。

2.1~n中任意一个数的不同的质因子不会超过10个,且所有质因子的指数之和不会大于30.

  最小的10个质数的乘积刚好大于231了,而231 > 2 * 109

3.把x分解质因数:x = 2a1 * 3a2 * 5a3 * 7a4 * …… * 29a10,一定满足a1 >= a2 >= a3 >= …… >= a10.

  证明用反证法。假设x中有一项pk(p > 29),那么=根据第二条结论,前10个质数中一定有一个p'不能整除x,那么我们应该用p'代替p,因为这即保证了约数相等,新的数又更小。

知道这几条结论后,一波爆搜就行了。

(爆搜我写的特别丑,是在不行了再看我的吧)

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<cstring>
 6 #include<cstdlib>
 7 #include<cctype>
 8 #include<stack>
 9 #include<queue>
10 #include<vector>
11 using namespace std;
12 #define enter puts("")
13 #define space putchar(' ')
14 #define Mem(a, x) memset(a, x, sizeof(a))
15 #define rg register
16 typedef long long ll;
17 typedef double db;
18 const int INF = 0x3f3f3f3f;
19 const db eps = 1e-8;
20 //const int maxn = ;
21 inline ll read()
22 {
23   ll ans = 0;
24   char ch = getchar(), las = ' ';
25   while(!isdigit(ch)) las = ch, ch = getchar();
26   while(isdigit(ch)) ans = ans * 10 + ch - '0', ch = getchar();
27   if(las == '-') ans = -ans;
28   return ans;
29 }
30 inline void write(ll x)
31 {
32   if(x < 0) putchar('-'), x = -x;
33   if(x >= 10) write(x / 10);
34   putchar(x % 10 + '0');
35 }
36
37 ll n;
38 const int a[] = {0, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29}; //num = 10
39 ll ans1 = 0, ans = (ll)INF * (ll)INF;
40
41 void dfs(ll now, int id, int sum, int Max, int tot, ll x)
42 {
43   if(!tot || now > n || id > 11) return;
44   if(x > ans1 ||(x == ans1 && now < ans)) ans1 = x, ans = now;
45   ll tp = 1;
46   for(int i = 1; i <= min(tot, Max); ++i)
47     {
48       tp *= a[id];
49       if(tp > n) break;
50       dfs(now * tp, id + 1, sum + i, i, tot - i, x * (i + 1));
51     }
52 }
53
54 int main()
55 {
56   n = read();
57   dfs(1, 1, 0, INF, 30, 1);
58   write(ans);
59   return 0;
60 }

View Code

转载于:https://www.cnblogs.com/mrclr/p/9756947.html

[HAOI2007]反素数相关推荐

  1. BZOJ(8) 1053: [HAOI2007]反素数ant

    1053: [HAOI2007]反素数ant Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4118  Solved: 2453 [Submit][ ...

  2. BZOJ 1053 [HAOI2007]反素数ant

    53: [HAOI2007]反素数ant Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0< ...

  3. bzoj1053: [HAOI2007]反素数ant

    51nod有一道类似的题...我至今仍然不会写暴搜!!! #include<cstdio> #include<cstring> #include<iostream> ...

  4. [HAOI2007]反素数ant

    1053: [HAOI2007]反素数ant Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1907  Solved: 1069 [Submit][ ...

  5. P1463 [POI2001][HAOI2007]反素数 题解

    P1463 [POI2001][HAOI2007]反素数 题解 题意分析 首先这是一个数论题 S o l u t i o n \tt Solution Solution 根据数据分析得出 2 9 &l ...

  6. 洛谷P1463 [POI2001][HAOI2007]反素数

    P1463 [POI2001][HAOI2007]反素数 详解见代码注释 #include <bits/stdc++.h> using namespace std; const int N ...

  7. AcWing 198. [HAOI2007] 反素数 约数个数+dfs

    题 参考 约数个数:每个质因数的次数+1的乘积. 2e9<2x3x5x7x11x13x17x19x23; 2e9<pow(2,31); last其实是最多扫30次. #include< ...

  8. bzoj 1053: [HAOI2007]反素数ant 51nod-1060:最复杂的数(反素数与因数个数计算)

    问题概述:把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数. 例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6.如果有多个数复杂度相等, ...

  9. [POI2002][HAOI2007]反素数

    https://www.lydsy.com/JudgeOnline/problem.php?id=1053 https://www.luogu.org/problemnew/show/P1463 定义 ...

最新文章

  1. arcgisserver修改服务器地址,ArcGIS for Server默认端口6080修改
  2. 使用OpenCV的findContours获取轮廓并切割(python)
  3. Python切分图像小案例(1、3、2、4象限子图互换)
  4. Linux学习之Vi编辑器常用命令
  5. 在ComboBox控件中使用嵌入字体。
  6. 智能合约从入门到精通:调用数据的布局和ABI
  7. springboot2.3.4集成EhCache缓存框架完整代码
  8. 【bzoj3329】Xorequ 数位dp+矩阵乘法
  9. 【kafka】kafka DefaultRecordBatch. The older message format classes only support conversion from class
  10. 斗拱展开面积表_144996_河南省仿古建筑工程计价综合单价2009
  11. 使用Scrapy,帮你快速抓取网页数据(代码可下载)!
  12. 一分钟搞懂的算法之BPE算法
  13. 开源游戏java引擎_基于Java的开源3D游戏引擎jMonkeyEngine
  14. 网络工程师笔记--网络管理技术
  15. editormd 支持拖放上传图片和视频
  16. SLAM 学习笔记 本质矩阵E、基础矩阵F、单应矩阵H的推导
  17. Codevs 1253 超级市场
  18. 安装CUDA时报错packages have unmet dependencies的一个可能原因
  19. 查看电脑连接过的无线网密码
  20. selenium使用webdriver自动化浏览器打不开无法输入网址

热门文章

  1. 具有搜索和自定义分页的React Bootstrap表
  2. PIR 宣布被营利性机构收购,.org 顶级域名注册费用或上涨
  3. Ubuntu 20.04 LTS 开发周期的重要任务:移除 Python 2
  4. 发现Tensorflow
  5. 12c安装默认密码_如何安装MySQL数据库和navicat客户端?
  6. 需要用sq语句 修改大批量用户的密码_网站文章seo优化及修改已收录文章建议
  7. ionic4的input调用手机键盘将换行改成搜索
  8. java 访问频率限制_配置URL的访问频率限制
  9. Execution default of goal org.springframework.boot:spring-boot-maven-plugin
  10. Javascript中 != 和 !==的区别