zoukankan      html  css  js  c++  java
  • bzoj3837 [Pa2013]Filary

    https://konnyakuxzy.github.io/BZPRO/JudgeOnline/3837.html

    https://szkopul.edu.pl/problemset/problem/EatNJj4oyss-xkLw0yMmGghb/site/?key=statement

    不会。。。

    题解:https://blog.csdn.net/coldef/article/details/69947367

    要注意一下平方因子数,不然WA(第一次交WA成51分)

    还卡常...

     1 #pragma GCC optimize(3)
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<vector>
     6 #include<tr1/unordered_map>
     7 using namespace std;
     8 #define fi first
     9 #define se second
    10 #define mp make_pair
    11 #define pb push_back
    12 typedef long long ll;
    13 typedef unsigned long long ull;
    14 typedef pair<int,int> pii;
    15 bool nprime[10000010];
    16 int prime[1000100],len,f[10000010];
    17 int n;
    18 int a[100100];
    19 #define map tr1::unordered_map
    20 map<int,int> ma;
    21 map<int,int>::iterator i1;
    22 ull dd[10001000];int d2[10001000];
    23 map<ull,int> tt;
    24 map<ull,int>::iterator i2;
    25 pii anss;
    26 ull rd()    {return rand()|(ull(rand())<<32);}
    27 int main()
    28 {
    29     //freopen("/tmp/15.in","r",stdin);
    30     int i,j,nn,t,p,q,ta,d,pp,nt,t2;
    31     srand(2563435);
    32     scanf("%d",&n);
    33     for(i=1;i<=n;i++)    scanf("%d",&a[i]);
    34     for(i=2;i<=10000000;i++)
    35     {
    36         if(!nprime[i])    prime[++len]=i,f[i]=i;
    37         for(j=1;j<=len&&i*prime[j]<=10000000;j++)
    38         {
    39             nprime[i*prime[j]]=1;f[i*prime[j]]=prime[j];
    40             if(i%prime[j]==0)    break;
    41         }
    42     }
    43     for(int ttt=1;ttt<=17;ttt++)
    44     {
    45         p=rand()%n+1;nn=0;
    46         for(i1=ma.begin();i1!=ma.end();++i1)
    47         {
    48             dd[i1->fi]=d2[i1->fi]=0;
    49         }
    50         ma.clear();
    51         //printf("p%d
    ",p);
    52         for(i=1;i<=n;i++)
    53         {
    54             if(a[i]==a[p])    nn++;
    55             else
    56             {
    57                 t=abs(a[i]-a[p]);pp=rd();
    58                 while(t!=1)
    59                 {
    60                     q=f[t];nt=0;
    61                     ma[q]++;dd[q]^=pp;
    62                     //printf("iq%d %d
    ",i,q);
    63                     while(t%q==0)    t/=q,nt++;
    64                     if(!d2[q])    d2[q]=nt;
    65                     else    d2[q]=min(d2[q],nt);
    66                 }
    67             }
    68         }
    69         ta=0;tt.clear();
    70         for(i1=ma.begin();i1!=ma.end();++i1)
    71         {
    72             ta=max(ta,i1->se);
    73         }
    74         //printf("ta%dnn%d
    ",ta,nn);
    75         for(i1=ma.begin();i1!=ma.end();++i1)
    76         {
    77             if(i1->se==ta)
    78             {
    79                 d=dd[i1->fi];
    80                 t2=tt.count(d)?tt[d]:1;
    81                 nt=d2[i1->fi];
    82                 while(nt--)    t2*=i1->fi;
    83                 tt[d]=t2;
    84             }
    85         }
    86         t2=0;
    87         for(i2=tt.begin();i2!=tt.end();++i2)
    88         {
    89             t2=max(t2,i2->se);
    90             //printf("i2se%d
    ",i2->se);
    91         }
    92         anss=max(anss,mp(nn+ta,t2));
    93     }
    94     printf("%d %d",anss.fi,anss.se);
    95     return 0;
    96 }
  • 相关阅读:
    9.4、安装zabbix(2)
    9.4、安装zabbix(1)
    9、zabbix监控
    50、django工程(ajax)
    49、django工程(cookie+session)
    48、django工程(model)
    47、django工程(template)
    46、django工程(view)
    45、django工程(URLconf)
    44、djanjo工程(介绍)
  • 原文地址:https://www.cnblogs.com/hehe54321/p/9549282.html
Copyright © 2011-2022 走看看