bzoj:3085: 反质数加强版SAPGAP
Description
Input
Output
Sample Input
Sample Output


- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<ctime>
- using namespace std;
- const int bi=1e4,MN=;
- char c[];
- int pr[]={,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,};
- struct big{
- int a[MN];
- inline big(){
- memset(a,,sizeof(a));
- a[]=;
- }
- inline void read(){
- register int i,j;
- scanf("%s",c);
- a[]=(strlen(c)+)/;
- for (i=;i<strlen(c);i++) j=(strlen(c)-i+)/,a[j]=a[j]*+c[i]-;
- }
- inline void pr(){
- register int i;
- printf("%d",a[a[]]);
- for (i=a[]-;i;i--) printf("%04d",a[i]);
- }
- inline big operator =(int x){
- if (x==){
- memset(a,,sizeof(a));
- a[]=;
- }
- a[]=;
- while (x){
- a[]++;
- a[a[]]=x%bi;
- x/=bi;
- }
- if (!a[]) a[]=;
- }
- inline big(int x){
- *this=x;
- }
- inline void gl(){
- while(!a[a[]]&&a[]>) a[]--;
- }
- inline big operator =(big x){
- register int i;
- a[]=x.a[];
- for (i=;i<=a[];i++) a[i]=x.a[i];
- }
- inline bool operator >(big y){
- if (a[]!=y.a[]) return a[]>y.a[];
- for (register int i=a[];i;i--){
- if (a[i]!=y.a[i]) return a[i]>y.a[i];
- }
- return ;
- }
- inline bool operator >=(const big y){
- if (a[]!=y.a[]) return a[]>y.a[];
- for (register int i=a[];i;i--){
- if (a[i]!=y.a[i]) return a[i]>y.a[i];
- }
- return ;
- }
- inline bool operator <(big y){
- if (a[]!=y.a[]) return a[]<y.a[];
- for (register int i=a[];i;i--){
- if (a[i]!=y.a[i]) return a[i]<y.a[i];
- }
- return ;
- }
- inline bool operator <=(big y){
- if (a[]!=y.a[]) return a[]<y.a[];
- for (register int i=a[];i;i--){
- if (a[i]!=y.a[i]) return a[i]<y.a[i];
- }
- return ;
- }
- inline bool operator ==(big y){
- if (a[]!=y.a[]) return ;
- for (register int i=a[];i;i--){
- if (a[i]!=y.a[i]) return ;
- }
- return ;
- }
- inline bool operator !=(big y){
- return !(*this==y);
- }
- inline bool operator ==(int y){
- big x=y;
- return *this==x;
- }
- inline bool operator !=(int y){
- return !(*this==y);
- }
- inline void swap(big &a,big &b){
- big x=a;a=b;b=x;
- }
- inline big operator +(big x){
- big r;
- if (a[]<x.a[]) r.a[]=x.a[];else r.a[]=a[];
- for (register int i=;i<=r.a[];i++) r.a[i]=a[i]+x.a[i];
- for (register int i=;i<=r.a[];i++)
- if (r.a[i]>=bi){
- r.a[i]-=bi;r.a[i+]++;
- if (i==r.a[]) r.a[]++;
- }
- return r;
- }
- inline big operator -(big x){
- if (*this<x) swap(*this,x);
- register int i;
- big r;
- if (a[]<x.a[]) r.a[]=x.a[];else r.a[]=a[];
- for (i=;i<=r.a[];i++) r.a[i]=a[i]-x.a[i];
- for (i=;i<=r.a[];i++)
- if (r.a[i]<){
- r.a[i+]--;r.a[i]+=bi;
- }
- r.gl();
- return r;
- }
- inline big operator *(big y){
- register int i,j;
- big r;r.a[]=a[]+y.a[]-;
- for (i=;i<=a[];i++)
- for (j=;j<=y.a[];j++) r.a[i+j-]+=a[i]*y.a[j];
- for (i=;i<=r.a[];i++)
- if (r.a[i]>=bi){
- r.a[i+]+=r.a[i]/bi;
- r.a[i]%=bi;
- if (i==r.a[]) r.a[]++;
- }
- return r;
- }
- inline big half(){
- register int i,j;
- for (i=a[];i>;i--) a[i-]+=(a[i]%)*bi,a[i]/=;
- a[]/=;
- gl();
- return *this;
- }
- inline big operator /(big y){
- register int i,j;
- big r,l,mid,rq=*this;
- r.a[]=rq.a[]+;r.a[r.a[]]=;
- while(r>l){
- mid=(l+r+big()).half();
- if (mid*y<=rq) l=mid;else r=mid-big();
- }
- return l;
- }
- inline big operator %(big y){
- register int i,j;
- big rq=*this;
- return rq-(rq/y*y);
- }
- }n,ans;
- long long cu;
- void dfs(int pos,int p,big sum,long long su){
- if (pos==&&p>) p=;else
- if (pos==&&p>) p=;else
- if (pos==&&p>) p=;else
- if (pos==&&p>) p=;else
- if (pos==&&p>) p=;
- if (pos>||sum>n) return;
- if ((su>cu)||(sum<ans&&cu==su)) cu=su,ans=sum;
- for (register int i=;i<=p;i++){
- sum=sum*big(pr[pos]);
- if (sum>n) return;
- dfs(pos+,i,sum,su*(i+));
- }
- }
- int main(){
- n.read();
- dfs(,,big(),);
- ans.pr();
- }
bzoj:3085: 反质数加强版SAPGAP的更多相关文章
- BZOJ 3085: 反质数加强版SAPGAP (反素数搜索)
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3085 题意:求n(<=10^100)之内最大的反素数. 思路: 优化2: i ...
- BZOJ1053 [HAOI2007]反素数 & BZOJ3085 反质数加强版SAPGAP
BZOJ 1053 Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0<i<x ,则称x ...
- BZOJ 4857 反质数序列
题面 奇数+奇数一定不是质数(1+1除外),偶数+偶数一定不是质数,质数只可能出现在偶数+奇数中 把所有的点排成两列,权值为奇数的点在左边,权值为偶数的在右边 如果左边的点x+右边的点y是质数,我们就 ...
- [bzoj]1053反质数<暴搜>
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1053 感想:这道题拿到以后还是想去知道一个数的约数个数要怎么求,去网上搜了公式,但是还是没有思 ...
- CNUOJ 0486 800401反质数
难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1,g(4)=3, g ...
- 反质数问题,求不大于n的最大反质数
反质数:设f(n)表示n个约数的个数,如果对于任意x有0<x<n, f(x) < f(n),那么n就是一个反质数 我们都知道对于任意一个数n,都可以用质数乘积的形式表示出来:x = ...
- 反质数(Antiprimes)
转载http://www.cnblogs.com/tiankonguse/archive/2012/07/29/2613877.html 问题描述: 对于任何正整数x,起约数的个数记做g(x).例如g ...
- COJN 0486 800401反质数 呵呵呵呵呵
800401反质数 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1 ...
- HYSBZ 1053 反质数
input n 1<=n<=2000000000 output 不大于n的最大反质数 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g( ...
随机推荐
- Python网络爬虫与信息提取(二)—— BeautifulSoup
BeautifulSoup官方介绍: Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. 官方 ...
- gitlab 升级
=============================================== 2017/10/21_第1次修改 ccb_warlock = ...
- 在QComboBox的基础上实现复选功能
这个是最近的一个项目上需要实现的功能.要求如下: 下拉列表的项目可以多选 显示框不能编辑 所选中的项目在显示框中出现 下面根据网上的提示代码(参照博客 一去二三里),主要实现如下代码(与参照略有不同) ...
- 鸟哥的linux私房菜学习-(一)优缺点分析以及主机规划与磁盘分区
一.linux的优缺点 那干嘛要使用Linux做为我们的主机系统呢?这是因为Linux有底下这些优点: 稳定的系统:Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Uni ...
- thinkinginjava学习笔记10_容器
Java中并没有像Perl.Python.Ruby那样对容器有直接的支持,但是可以依靠容器类来完成相同的工作: 泛型 使用一个ArrayList对象可以保存一系列的对象,如: ArrayList ap ...
- Fiddler中使用AutoResponder创建规则替换线上文件
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上. 1.AutoResponder规则实例 (1) 打开博客园首页,把博客园的 ...
- Python 词云分析周杰伦《晴天》
一.前言满天星辰的夜晚,他们相遇了...夏天的时候,她慢慢的接近他,关心他,为他付出一切:秋天的时候,两个人终於如愿的在一起,分享一切快乐的时光但终究是快乐时光短暂,因为杰伦必须出国深造,两人面临了要 ...
- value toDF is not a member of org.apache.spark.rdd.RDD
idea显示toDF() 没有这个函数,显示错误: Error:(82, 8) value toDF is not a member of org.apache.spark.rdd.RDD[com.d ...
- JS随机显示一张图片
var images=['p1.jpg','p2.jpg','p3.jpg']; var url=images[Math.floor(Math.random()*images.length)]; co ...
- MicroPython之TPYBoard v102开发板控制OLED显示中文
转载请以链接形式注明文章来源,公众号:MicroPython玩家汇 0x00前言 之前看到一篇文章是关于TPYBoardv102控制OLED屏显示的,看到之后就想尝试一下使用OLED屏来显示中文.最近 ...