hdu 5321 Beautiful Set(推式子+ 反演+组合)*

大牛博客:https://blog.csdn.net/FirstLucker/article/details/47128347

下面是看了大牛的博客后,自己依着思路推的
zstu的推式子:
在这里插入图片描述
hdu的话,最后注意有 2 n = ∑ i = 0 n C n k 2^n=\sum_{i=0}^nC_n^k 2n=i=0nCnk

#include <bits/stdc++.h>

using namespace std;
#define ll long long 
const int mod = 258280327;


const int N = 1e5+10;
int prime[N];
ll h[N];
ll bin[N];

int tmp_val[N];
int cnt[N];
ll jc[N];
ll inv[N];//i的逆元
ll fac_inv[N]; //i!的逆元


void get_prime()
{
    bin[0]=1;
    bin[1]=2;
    jc[0]=1;
    jc[1]=1;
    
    h[1]=1;
    inv[0]=1;
    inv[1]=1;
    fac_inv[0]=1;
    fac_inv[1]=1;
    for(int i=2;i<N;i++)
    {
        bin[i]=bin[i-1]*2%mod;
        jc[i]=jc[i-1]*i%mod;
        inv[i]=(mod-mod/i)*inv[mod%i]%mod;
        fac_inv[i]=fac_inv[i-1]*inv[i]%mod;
        if(!prime[i])
        {
            prime[++prime[0]]=i;
            h[i]=i-1;
        }
        for(int j=1;j<=prime[0]&&i*prime[j]<N;j++)
        {
            prime[i*prime[j]]=1;
            if(i%prime[j]==0)
            {
                h[i*prime[j]]=prime[j]*h[i]%mod;
                break;
            }
            h[i*prime[j]]=(prime[j]-1)*h[i]%mod;
        }
    }
    
}



void solve(int n,int max_val)
{
    for(int i=1;i<=max_val;i++)
    {
        cnt[i]=0;
        for(int j=i;j<=max_val;j+=i)
        {
            cnt[i]+=tmp_val[j];
        }
    }
    ll zstu=0,hdu=0;
    for(int d=1;d<=max_val;d++) if(cnt[d])
    {
        zstu=(zstu+h[d]*jc[cnt[d]]%mod*jc[n+1]%mod*fac_inv[cnt[d]-1]%mod*inv[n-cnt[d]+2]%mod)%mod;
        hdu=(hdu+h[d]*cnt[d]%mod*bin[(cnt[d]-1)]%mod)%mod;
    }
    // cout<<zstu<<" "<<hdu<<endl;
    if(zstu==hdu)
        printf("Equal %lld\n",hdu);
    else if(zstu<hdu)
        printf("Mr. Hdu %lld\n",hdu);
    else 
        printf("Mr. Zstu %lld\n",zstu);
    
}



int main()
{
    get_prime();
    int n,x;
    while(~scanf("%d",&n))
    {
        memset(tmp_val,0,sizeof(tmp_val));
        int max_val=0;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&x);
            tmp_val[x]++;
            max_val=max(max_val,x);
        }
        solve(n,max_val);
    }
    
    return 0;
}
weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值