P1463 [SDOI2005]反素数ant
题意:
题解:
思维难度不高,考虑到n较大,而反质数个数较少
所以只要算出每个反质数即可
考虑如何计算,可以发现,我们只需枚举计算出约数有x个的最小数,再做一下判断即可
另外约数的个数=(a1+1)(a2+1)(a3+1)......
其次有三个细节需要注意
1.是对约数个数的预计,小了会造成wa
2.相应约数就会相应需要计算2^3000次方,而由于实际答案不超过2e9,所以对于那些在任何一个环节超过2e9的都不用计算
3.在2的基础上,不要将2e9扩大太多,因为在运算中有将其平方的操作
代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define INF 2999999999
#define INF2 2000000000
ll f[],b[][];
bool cmp(ll a,ll b)
{
return(a>b);
}
ll js(ll x,ll y,ll z)
{
if (x==) return(x);
ll tmp=INF;
for (ll i=y;i>;i--)
if (x%i==)
{
ll tmp2=b[z][i-]*js(x/i,i,z+);
if (tmp2!= && tmp2<=INF2) tmp=min(tmp,tmp2);
}
return(tmp);
}
int main(){
ll p=;
ll a[]={,,,,,,,,,,,,,,,};
for (ll i=;i<=p;i++)
{
b[i][]=;
for (ll j=;j<=;j++)
{
b[i][j]=b[i][j-]*a[i];
if (b[i][j]>INF2) break;
}
}
ll n,m=;
cin>>n;
for (ll i=;i<=m;i++)
{
f[i]=js(i,i,);
}
p=m;
ll maxn=;
// for (int i=1;i<=p;i++)cout<<f[i]<<endl;
for (int i=p-;i>=;i--)
f[i]=min(f[i+],f[i]);
for (int i=p;i>=;i--)
if (f[i]<=n)
{
maxn=max(maxn,f[i]);
}
cout<<maxn;
}
P1463 [SDOI2005]反素数ant的更多相关文章
- 洛谷 P1463 [SDOI2005]反素数ant
P1463 [SDOI2005]反素数ant 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i< ...
- [luogu]P1463 [SDOI2005]反素数ant[dfs][数学][数论]
[luogu]P1463 [SDOI2005]反素数ant ——!x^n+y^n=z^n 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足: ...
- 洛谷 P1463 [SDOI2005]反素数ant && codevs2912反素数
题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6 ...
- Luogu P1463 [HAOI2007]反素数ant:数学 + dfs【反素数】
题目链接:https://www.luogu.org/problemnew/show/P1463 题意: 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x ...
- [BZOJ1053][SDOI2005]反素数ant 数学
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1053 假设这个最大的反素数为$x$,那么$1<p<x$中数的因子数都没有$x$ ...
- [SDOI2005]反素数ant
题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6 ...
- 洛谷 1463[SDOI2005] 反素数ant
题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6 ...
- 【BZOJ】【1053】【HAOI2007】反素数ant
搜索 经典搜索题目(其实是蒟蒻只会搜……vfleaking好像有更优秀的做法?) 枚举质数的幂,其实深度没多大……因为$2^32$就超过N了……而且质数不能取的太大,所以不会爆…… /******** ...
- BZOJ 1053: [HAOI2007]反素数ant dfs
1053: [HAOI2007]反素数ant 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1053 Description 对于任何正整 ...
随机推荐
- 10-SQL Server 2008 R2安装步骤
一. 软件和环境 1. 软件 : SQL Server 2008 R2 企业版 软件下载地址:XXXX 2. 环境要求: .Net FrameWork 3.5 以上 (windows 7 ...
- elasticsearch核心知识梳理
https://blog.csdn.net/laoyang360/article/details/52244917
- Mybatis中的StatementType
原文:http://luoyu-ds.iteye.com/blog/1517607 要实现动态传入表名.列名,需要做如下修改 添加属性statementType=”STATEMENT” 同时sql里的 ...
- javaScript事件系统详解
一个有情怀的猴子
- 51nod1222 最小公倍数计数
题目来源: Project Euler 基准时间限制:6 秒 空间限制:131072 KB 分值: 640 定义F(n)表示最小公倍数为n的二元组的数量. 即:如果存在两个数(二元组)X,Y(X & ...
- POJ3635 Full Tank?【Dijkstra+DP】
题意: n个城市之间有m条双向路.每条路要耗费一定的油量.每个城市的油价是固定并且已经给出的.有q个询问,表示从城市s走到e,油箱的容量为c,求最便宜的方案. 思路: 用Dijkstra+Heap即可 ...
- [ZJOI2012]波浪弱化版(带技巧的DP)
题面 \(solution:\) 这道确实挺难的,情况特别多,而且考场上都没想到如何设置状态.感觉怎么设状态不能很好的表示当前情况并转移,考后发现是对全排列的构造方式不熟而导致的,而这一题的状态也是根 ...
- 表单之input的样式修改
修改placeholder字体颜色 html5为input添加了原生的占位符属性placeholder,高级浏览器都支持这个属性,例如: <input type="text" ...
- Navicat Premium连接各种数据库
版本信息 Navicat Premium 是一套数据库开发工具,让你从单一应用程序中同时连接 MySQL.MariaDB.SQL Server.Oracle.PostgreSQL 和 SQLite 数 ...
- gflags命令行参数解析
gflags库是google开源的命令行参数解析工具. 安装 官方没有提供二进制库,但是Debian/Ubuntu平台本身提供了二进制库,可以直接git clone https://github.co ...