zoukankan      html  css  js  c++  java
  • 2017 Multi-University Training Contest

    TrickGCD

    Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)
    Total Submission(s): 2097    Accepted Submission(s): 816

    Sample Input
    1
    4
    4 4 4 4
    Sample Output
    Case #1: 17
     
    Source
    最近不舒服 病了 找个时间来解释
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cstdlib>
     6 #include<string.h>
     7 #include<set>
     8 #include<vector>
     9 #include<queue>
    10 #include<stack>
    11 #include<map>
    12 #include<cmath>
    13 typedef long long ll;
    14 typedef unsigned long long LL;
    15 using namespace std;
    16 const double PI=acos(-1.0);
    17 const double eps=0.0000000001;
    18 const int N=200000+100;
    19 const int mod=1e9+7;
    20 const int INF=0x3f3f3f3f;
    21 int num[N],mo[N];
    22 void mobius(){
    23     mo[1]=1;
    24     for(int i=1;i<=N;i++)
    25     for(int j=i+i;j<=N;j+=i)
    26     mo[j]-=mo[i];
    27 }
    28 int pow_mod(int a,int b){
    29     ll ans=1;
    30     while(b)
    31     {
    32         if(b&1)ans=(ans*a)%mod;
    33         a=(1ll*a*a)%mod;
    34         b>>=1;
    35     }
    36     return ans;
    37 }
    38 int main(){
    39     int t,n,x,minn,kase=0;
    40     mobius();
    41     scanf("%d",&t);
    42     while(t--)
    43     {
    44         memset(num,0,sizeof(num));
    45         for(int i=1;i<=N;i++){
    46             num[i]=num[i-1]+num[i];
    47         }
    48         minn=INF;
    49         scanf("%d",&n);
    50         for(int i=1;i<=n;i++){
    51             scanf("%d",&x);
    52             minn=min(minn,x);
    53             num[x]++;
    54         }
    55         ll ans=0;
    56         for(int i=2;i<=minn;i++)
    57         {
    58             int cnt=1;
    59             for(int j=1;j*i<=100000;j++)
    60             {
    61                 cnt=(1(ll)*cnt*pow_mod(j,num[i*(j+1)-1]-num[i*j-1]))%mod;
    62             }
    63             ans=(ans-1(ll)*mo[i]*cnt+mod)%mod;
    64         }
    65         printf("Case #%d: %lld
    ",++kase,ans);
    66     }
    67     return 0;
    68 }
     
  • 相关阅读:
    IE下PNG透明图片fadeIn出现黑边的问题
    愿闻其翔记(一)
    简单的日期选择器
    HTML5 贪吃蛇
    HTML5小程序,变化的色彩
    HTML5 Canvas 基本图形画法
    帝国CMS实现一二级导航及其高亮
    php中json_decode()和json_encode()
    JavaScript重复元素处理
    JQuery在光标位置插入内容
  • 原文地址:https://www.cnblogs.com/Aa1039510121/p/7258006.html
Copyright © 2011-2022 走看看