zoukankan      html  css  js  c++  java
  • BZOJ 1053 [HAOI2007]反素数ant

    1053: [HAOI2007]反素数ant

    Time Limit: 10 Sec  Memory Limit: 162 MB
    Submit: 1948  Solved: 1094
    [Submit][Status][Discuss]

    Description

    对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。
    如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数。例如,整数1,2,4,6等都是反质数。
    现在给定一个数N,你能求出不超过N的最大的反质数么?

    Input

    一个数N(1<=N<=2,000,000,000)。

    Output

    不超过N的最大的反质数。

    Sample Input

    1000

    Sample Output

    840

    HINT

     

    Source

    题解:要知道一个数约数个数=所有素因子的次数+1的乘积,然后爆搜就可以了,注意小素因子多一定比大素因子多要优,所以加一个left,还有那两个奇怪的边界统计。。。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<stack>
     6 #include<queue>
     7 #include<cstring>
     8 #define PAU putchar(' ')
     9 #define ENT putchar('
    ')
    10 #define LL long long 
    11 using namespace std;
    12 int n,p[12]={1,2,3,5,7,11,13,17,19,23,29,31};
    13 int ans=1,num=1;
    14 void dfs(int w,LL now,int cnt,int left){
    15     if(w==11){
    16         if(now>ans&&cnt>num)ans=now,num=cnt;
    17         if(now<=ans&&cnt>=num)ans=now,num=cnt;
    18         return;
    19     }LL t=1;
    20     for(int i=0;i<=left;i++){
    21         dfs(w+1,now*t,cnt*(i+1),i);t*=p[w];
    22         if(now*t>n)break;
    23     }return;
    24 }
    25 inline int read(){
    26     int x=0;bool sig=1;char ch=getchar();
    27     for(;!isdigit(ch);ch=getchar())if(ch=='-')sig=0;
    28     for(;isdigit(ch);ch=getchar())x=10*x+ch-'0';
    29     return sig?x:-x;
    30 }
    31 inline void write(int x){
    32     if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x;
    33     int len=0,buf[20];while(x)buf[len++]=x%10,x/=10;
    34     for(int i=len-1;i>=0;i--)putchar(buf[i]+'0');return;
    35 }
    36 int main(){
    37     n=read();dfs(1,1,1,30);write(ans);return 0;
    38 }
  • 相关阅读:
    实现Bootstrap表格拖拽
    鼠标悬停显示气泡
    JS实现当前选择日期是星期几
    JS实现双击编辑可修改
    数组累计-reduce
    vuex——action,mutation,getters的调用
    正则 二
    常用正则 一
    vuex 的使用 mapState, mapGetters, mapMutations, mapActions
    正则替换所有的 ‘ / ’
  • 原文地址:https://www.cnblogs.com/chxer/p/4732941.html
Copyright © 2011-2022 走看看