HDU - 5528Count a * b 数学公式推导

HDU - 5528 Count a * b

  照着这个写的,忘了哪个大佬博客里的了

  但很多初学者,像我一样可能不懂其中一些符号的意义,还有为什么可以这样推导,所以我自己又推导了一下,并用自己的观点解释了下一些自己不懂的过程。

  至于mod264,是因为中途计算结果可能超long long,所以注意使用unsigned long long 

 1 #include<cstdio>
 2 typedef unsigned long long ull;
 3 typedef long long ll;
 4 const int N=52118;
 5 bool nop[N]={false};
 6 int pn,pri[N];
 7 void initp()
 8 {
 9     pn=0;
10     for(int i=2;i<N;i++)
11     {
12         if(!nop[i])
13             pri[pn++]=i;
14         for(int j=0;j<pn&&i*pri[j]<N;j++)
15         {
16             nop[i*pri[j]]=true;
17             if(i%pri[j]==0)
18                 break;
19         }
20     }
21 }
22 ull solve(int x)
23 {
24     ull ans1=1ull,ans2=1ull*x;
25     for(int i=0;i<pn&&pri[i]*pri[i]<=x;i++)
26     {
27         if(x%pri[i]==0)
28         {
29             ll sum=1ll;
30             int exp=0,p=1;
31             while(x%pri[i]==0)
32             {
33                 p*=pri[i];
34                 sum+=1ll*p*p;
35                 x/=pri[i];
36                 exp++;
37             }
38             ans1*=1ull*sum;
39             ans2*=1ull*(exp+1);
40         }
41     }
42     if(x>1)
43     {
44         ans1*=1ull*x*x+1;
45         ans2*=2ull;
46     }
47     return ans1-ans2;
48 }
49 int main()
50 {
51     initp();
52     int t,n;
53     scanf("%d",&t);
54     while(t--)
55     {
56         scanf("%d",&n);
57         printf("%llu\n",solve(n));
58     }
59     return 0;
60 }
项式分解
#include<cstdio>
typedef unsigned long long ull;
const int N=52118;
bool nop[N]={false};
int pn,pri[N],pa,pp[N],exp[N];
ull ans1,ans2;
void initp()
{
    pn=0;
    for(int i=2;i<N;i++)
    {
        if(!nop[i])
            pri[pn++]=i;
        for(int j=0;j<pn&&i*pri[j]<N;j++)
        {
            nop[i*pri[j]]=true;
            if(i%pri[j]==0)
                break;
        }
    }
}
void getFac(int x)
{
    pa=0;
    for(int i=0;i<pn&&pri[i]*pri[i]<=x;i++)
    {
        if(x%pri[i]==0)
        {
            pp[pa]=pri[i];
            exp[pa]=0;
            while(x%pri[i]==0)
            {
                x/=pri[i];
                exp[pa]++;
            }
            pa++;
        }
    }
    if(x>1)
    {
        pp[pa]=x;
        exp[pa++]=1;
    }
}
void dfs(int pos,int xx)
{
    if(pos>=pa)
    {
        ans1+=1ull*xx*xx;
        return ;
    }
    dfs(pos+1,xx);
    for(int i=0,p=1;i<exp[pos];i++)
    {
        p*=pp[pos];
        dfs(pos+1,xx*p);
    }
}
ull solve(int x)
{
    ans1=0ull;
    ans2=1ull*x;
    getFac(x);
    dfs(0,1);
    for(int i=0;i<pa;i++)
        ans2*=1ull*(exp[i]+1);
    return ans1-ans2;
}
int main()
{
    initp();
    int t,n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        printf("%llu\n",solve(n));
    }
    return 0;
}
唯一分解

 

转载于:https://www.cnblogs.com/LMCC1108/p/11098527.html

内容概要:本文详细探讨了基于樽海鞘算法(SSA)优化的极限学习机(ELM)在回归预测任务中的应用,并与传统的BP神经网络、广义回归神经网络(GRNN)以及未优化的ELM进行了性能对比。首先介绍了ELM的基本原理,即通过随机生成输入层与隐藏层之间的连接权重及阈值,仅需计算输出权重即可快速完成训练。接着阐述了SSA的工作机制,利用樽海鞘群体觅食行为优化ELM的输入权重和隐藏层阈值,从而提高模型性能。随后分别给出了BP、GRNN、ELM和SSA-ELM的具体实现代码,并通过波士顿房价数据集和其他工业数据集验证了各模型的表现。结果显示,SSA-ELM在预测精度方面显著优于其他三种方法,尽管其训练时间较长,但在实际应用中仍具有明显优势。 适合人群:对机器学习尤其是回归预测感兴趣的科研人员和技术开发者,特别是那些希望深入了解ELM及其优化方法的人。 使用场景及目标:适用于需要高效、高精度回归预测的应用场景,如金融建模、工业数据分析等。主要目标是提供一种更为有效的回归预测解决方案,尤其是在处理大规模数据集时能够保持较高的预测精度。 其他说明:文中提供了详细的代码示例和性能对比图表,帮助读者更好地理解和复现实验结果。同时提醒使用者注意SSA参数的选择对模型性能的影响,建议进行参数敏感性分析以获得最佳效果。
《芋道开发指南文档-2023-10-27更新》是针对软件开发者和IT专业人士的一份详尽的资源集合,旨在提供最新的开发实践、范例代码和最佳策略。这份2023年10月27日更新的文档集,包含了丰富的模板和素材,帮助开发者在日常工作中提高效率,保证项目的顺利进行。 让我们深入探讨这份文档的可能内容。"芋道"可能是一个开源项目或一个专业的技术社区,其开发指南涵盖了多个方面,例如: 1. **编程语言指南**:可能包括Java、Python、JavaScript、C++等主流语言的编码规范、最佳实践以及常见问题的解决方案。 2. **框架与库的应用**:可能会讲解React、Vue、Angular等前端框架,以及Django、Spring Boot等后端框架的使用技巧和常见应用场景。 3. **数据库管理**:涵盖了SQL语言的基本操作,数据库设计原则,以及如何高效使用MySQL、PostgreSQL、MongoDB等数据库系统。 4. **版本控制**:详细介绍了Git的工作流程,分支管理策略,以及与其他开发工具(如Visual Studio Code、IntelliJ IDEA)的集成。 5. **持续集成与持续部署(CI/CD)**:包括Jenkins、Travis CI、GitHub Actions等工具的配置和使用,以实现自动化测试和部署。 6. **云服务与容器化**:可能涉及AWS、Azure、Google Cloud Platform等云计算平台的使用,以及Docker和Kubernetes的容器化部署实践。 7. **API设计与测试**:讲解RESTful API的设计原则,Swagger的使用,以及Postman等工具进行API测试的方法。 8. **安全性与隐私保护**:涵盖OAuth、JWT认证机制,HTTPS安全通信,以及防止SQL注入、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值