[题解](约数)BZOJ_1053_反素数
三条引理:
1.1~N中最大的反质数,就是1~N中约数个数最多的最小的一个
比较显然,是应该看出来的一条
2.1~N中任何数的不同因子都不会超过10个,且所有质因子的指数之和不超过30:
2*3*5*7*11*13*17*19*23*29*31 > 2*10^9
2^30 > 2*10^9
3.x的质因子是连续的若干最小的质数,质数单调递减
如果有指数不单调,那么可以通过交换质因子的方式证出不是反质数或者更优
通过搜索实现:
枚举每个质因子的指数,根据引理1更新答案,根据引理2、3剪一些枝
不开longlong一时爽,一会提交火葬场
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n;
const int p[]={,,,,,,,,,,};
int ans,numans;//数和约数个数
void dfs(int pos,ll sum,int lst,int sumk,int cnt){//sumk指数之和,cnt为约数个数
if(sumk>)return;
if(pos==){
if(cnt>numans)ans=sum,numans=cnt;
else if(cnt==numans&&sum<=ans)ans=sum,numans=cnt;
return;
}
int s=;
for(int i=;i<=lst;i++){
dfs(pos+,sum*s,i,sumk+i,cnt*(i+));
s*=p[pos];
if((long long)(sum*s)>n)break;
}
}
int main(){
scanf("%d",&n);
dfs(,,,,);
printf("%d",ans);
}
[题解](约数)BZOJ_1053_反素数的更多相关文章
- 约数 求反素数bzoj1053 bzoj1257
//约数 /* 求n的正约数集合:试除法 复杂度:O(sqrt(n)) 原理:扫描[1,sqrt(N)],尝试d能否整除n,若能,则N/d也能 */ ],m=; ;i*i<=n;i++){ ){ ...
- 【BZOJ1053】[HAOI2007]反素数
[BZOJ1053][HAOI2007]反素数 题面 bzoj 洛谷 题解 可以从反素数的定义看出小于等于\(x\)的最大反素数一定是约数个数最多且最小的那个 可以枚举所有的质因数来求反素数,但还是跑 ...
- BZOJ 1053 [HAOI2007]反素数ant 神奇的约数
本蒟蒻终于开始接触数学了...之前写的都忘了...忽然想起来某神犇在几个月前就切了FWT了... 给出三个结论: 1.1-N中的反素数是1-N中约数最多但是最小的数 2.1-N中的所有数的质因子种类不 ...
- BZOJ 1053: [HAOI2007]反素数ant dfs
1053: [HAOI2007]反素数ant 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1053 Description 对于任何正整 ...
- HAOI2007反素数
1053: [HAOI2007]反素数ant Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1346 Solved: 732[Submit][Sta ...
- BZOJ 1053 [HAOI2007]反素数ant
1053: [HAOI2007]反素数ant Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1948 Solved: 1094[Submit][St ...
- CodeForces - 27E--Number With The Given Amount Of Divisors(反素数)
CodeForces - 27E Number With The Given Amount Of Divisors Submit Status Description Given the number ...
- [HAOI 2007]反素数ant
Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数 ...
- BZOJ1053 [HAOI2007]反素数ant 数论
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 传送门 - BZOJ1053 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正 ...
随机推荐
- leetcode 792. Number of Matching Subsequences
Given string S and a dictionary of words words, find the number of words[i] that is a subsequence of ...
- vim编辑makefile时临时不展开tab为空格
可以先敲ctrl-v组合键,再敲tab键,这样就不会被转换成空格了. 给自己的备忘!
- Codeforces Round #398 (Div. 2) C. Garland —— DFS
题目链接:http://codeforces.com/contest/767/problem/C 题解:类似于提着一串葡萄,用剪刀剪两条藤,葡萄分成了三串.问怎样剪才能使三串葡萄的质量相等. 首先要做 ...
- c#设置系统时间后不起作用
网上设置系统时间的代码很多,但是会出现设置后没有作用的问题 遇到以上问题可以按照如下办法解决 1.项目--属性--安全性--勾选启用ClickOne安全设置,如下图所示: 2.打开app.manife ...
- BigDecimal 实际测试结果
package com.zzzy; import java.math.BigDecimal; public class Test { public static void main(String[] ...
- Understand JavaScript’s “this” With Clarity, and Master It
The this keyword in JavaScript confuses new and seasoned JavaScript developers alike. This article a ...
- Vijos P1794 文化之旅
标签: 搜索图结构 最短路 NOIP普及组2012 ...
- centos 安装配置kettle
安装JDK1.8: step1 下载JDK1.8 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133 ...
- 「网络流24题」「LuoguP3358」 最长k可重区间集问题(费用流
题目描述 对于给定的开区间集合 I 和正整数 k,计算开区间集合 I 的最长 k可重区间集的长度. 输入输出格式 输入格式: 的第 1 行有 2 个正整数 n和 k,分别表示开区间的个数和开区间的可重 ...
- [WC 2006] 水管局长
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2594 [算法] 首先离线 , 将删边操作转化为倒序加边 假设我们已经维护出了一棵最小 ...