zoukankan      html  css  js  c++  java
  • 暑假集训Day1 B(拓展欧拉定理)

     这题公式其实非常好推,主要是在幂的指数上取模的时候,应该用欧拉定理,指数上模的应该是MOD对应的欧拉函数值

     1 #include "bits/stdc++.h"
     2 using namespace std;
     3 typedef long long LL;
     4 const int MOD=1e9+7;
     5 const int MAX=2e5+5;
     6 LL ans,n,a[MAX],b[MAX],c[MAX];
     7 LL ksm(LL x,LL y){
     8     LL an=1ll;
     9     while (y){
    10         if (y%2==1ll) an=(an*x)%MOD;
    11         x=(x*x)%MOD;
    12         y/=2ll;
    13     }
    14     return an;
    15 }
    16 LL ksm2(LL x,LL y){
    17     LL an=1ll;
    18     while (y){
    19         if (y%2==1ll) an=(an*x)%(MOD-1);
    20         x=(x*x)%(MOD-1);
    21         y/=2ll;
    22     }
    23     return an;
    24 }
    25 inline LL read(){
    26     LL an(0ll),x=1ll;char c=getchar();
    27     while (c<'0' || c>'9') {if (c=='-') x=-1;c=getchar();}
    28     while (c>='0' && c<='9') {an=an*10+c-'0';c=getchar();}
    29     return an*x;
    30 }
    31 bool cmp(LL x,LL y){
    32     return x<y;
    33 }
    34 int main(){
    35     freopen ("b.in","r",stdin);
    36     freopen ("b.out","w",stdout);
    37     int i,j;
    38     LL x,y,z,mul=1ll;
    39     n=read();
    40     for (i=1;i<=n;i++) a[i]=read();
    41     sort(a+1,a+n+1,cmp);
    42     memset(b,0,sizeof(b));
    43     memset(c,0,sizeof(c));
    44     for (i=1;i<=n;i++)
    45         if (a[i]!=a[i-1]){
    46             b[++b[0]]=a[i];
    47             c[++c[0]]=1;
    48         }
    49         else c[c[0]]++;
    50     ans=1ll;bool flag=true;
    51     for (i=1;i<=c[0];i++){
    52         mul=(mul*(c[i]+1))%(MOD-1);
    53         if ((c[i]+1)%2==0 && flag){
    54             flag=false;
    55             mul/=2;
    56         }
    57     }
    58     for (i=1;i<=b[0];i++){
    59         x=c[i];
    60         if (flag) x/=2ll;
    61         z=(x*mul%(MOD-1))%(MOD-1);
    62         ans=(ans*ksm(b[i],z))%MOD;
    63     }
    64     printf("%lld",ans);
    65     return 0;
    66 }
    未来是什么样,未来会发生什么,谁也不知道。 但是我知道, 起码从今天开始努力, 肯定比从明天开始努力, 要快一天实现梦想。 千里之行,始于足下! ——《那年那兔那些事儿》
  • 相关阅读:
    h5网页跳转到app,若未安装app,则跳转app下载页面
    移动端虚拟键盘影响页面布局的问题
    meta标签常用设置
    关于click的多次触发问题(冒泡事件)
    回溯法求解迷宫问题
    记一次MYSQL更新优化
    shell知识点小结
    PHP预定义接口
    【翻译自nikic大神】PHP中原生类型的方法
    找女神要QQ号码
  • 原文地址:https://www.cnblogs.com/keximeiruguo/p/15008421.html
Copyright © 2011-2022 走看看