太阳神

记一次太阳神三国杀的编译 这是一次学习太阳神三国杀的经历 阅读详情

题目描述

太阳神拉很喜欢最小公倍数,有一天他想到了一个关于最小公倍数的题目。
求满足如下条件的数对(a,b)对数:a,b均为正整数且a,b<=n而lcm(a,b)>n。其中的lcm当然表示最小公倍数。答案对1,000,000,007取模

推式子

我们先做个补集转化。
然后就是统计这样的三元组(a,b,d)个数了
1、a*b*d<=n
2、(a,b)=1
a和b定了,d的取值就有nab
ans=∑na=1∑nb=1[(a,b)=1]∗nab
我们尝试莫比乌斯反演一下,也就是
设f[k]=∑na=1∑nb=1[(a,b)=k]∗nab
g[k]=∑nki=1f[k∗i]
反演一下变成
f[k]=∑ni=1μ(i)∗g[k∗i]
g是很容易算的,所以
f[k]=∑ni=1μ(i)∗∑nk∗ia′=1∑nk∗ib′=1(nk2)a′b′
现在我们需要f[1],代入k=1得
ans=∑nd=1μ(d)∗∑nd2a′=1∑nd2b′=1(nd2)a′b′
观察后面,可以改变d的枚举上界
ans=∑n√d=1μ(d)∗∑nd2a′=1∑nd2b′=1(nd2)a′b′
后面那个东西只与nd2有关,设其为f(nd2)

算f

设f(x)=∑xi=1∑xj=1xij
可以看出可以根据xi的取值分块!每一块答案显然相同,块数为x√
假如i确定了,那么答案为∑xij=1(xi)j
后面那个东西只与xi有关,设其为g(xi)

算g

设g(x)=∑xi=1xi
我们应该怎么算g呢?
有这样一个奇妙的方法。
首先,先知道一个结论。
g(x)=∑xi=1d(i)
d函数表示约数个数。
为什么呢?你考虑xi,那么说明1∗i,2∗i,3∗i……xi∗i都在x内,而且i是上述提到的xi个数的约数。
因此可以表示为约数个数前缀和。
那么也就是说g可以线筛?
但显然不能全都线筛啊?
dalao说,以n2/3为界,记为N。我们需要筛出g(1~N),然后对于x<=N便直接得解。
如果x>N?观察g的算式,我们显然可以按照取值分块,得到一个根号算法。那我们就这样做最快咯。不过这样会T,加个记忆化即可。
怎么记忆化呢?dalao说,x可以映射到n/x,这样一定不会重复。这样就可以开小记忆化数组。
总复杂度?dalao说,是O(n2/3)

#include<cstdio>
#include<algorithm>
#include<cmath>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
typedef long long ll;
const int N=3000000,mo=1000000007;
int mu[N+10],sum[N+10],mem[N+10],d[N+10],pri[N+10];
bool bz[N+10];
int i,j,k,l,t,m,top,ans;
ll n;
void prepare(){
    int i,j;
    mu[1]=1;
    fo(i,2,N){
        if (!bz[i]){
            pri[++top]=i;
            mu[i]=-1;
        }
        fo(j,1,top){
            if ((ll)i*pri[j]>N) break;
            bz[i*pri[j]]=1;
            if (i%pri[j]==0){
                mu[i*pri[j]]=0;
                break;
            }
            mu[i*pri[j]]=-mu[i];
        }
    }
    fo(i,1,N)
        fo(j,1,N/i)
            d[i*j]++;
    fo(i,1,N) sum[i]=sum[i-1]+d[i],mem[i]=-1;
}
int calcg(ll x){
    if (x<=N) return sum[x];
    if (mem[n/x]>=0) return mem[n/x];
    ll i=1,j;
    int t=0;
    while (i<=x){
        j=x/(x/i);
        (t+=(ll)(j-i+1)*(x/i)%mo)%=mo;
        i=j+1;
    }
    return mem[n/x]=t;
}
int calcf(ll x){
    ll i=1,j;
    int t=0;
    while (i<=x){
        j=x/(x/i);
        (t+=(ll)calcg(x/i)*(j-i+1)%mo)%=mo;
        i=j+1;
    }
    return t;
}
int main(){
    freopen("ra.in","r",stdin);freopen("ra.out","w",stdout);
    prepare();
    scanf("%lld",&n);
    fo(i,1,floor(sqrt(n)))
        if (mu[i]) (ans+=mu[i]*calcf(n/i/i))%=mo;
    ans=((ll)(n%mo)*(n%mo)%mo-ans)%mo;
    (ans+=mo)%=mo;
    printf("%d\n",ans);
}
太阳神三国杀学习第一步--编译并运行(qt5.7.0+vs2015) 太阳神三国杀学习初步--qt5.7.0+vs2015编译运行 阅读详情

相关推荐

Win11用户文件夹中文名修改全攻略

本文详细介绍了Windows 11系统中修改中文用户文件夹名称的完整步骤。操作包含七个关键环节:前期数据备份、账户名称修改、管理员账户激活、用户文件夹重命名、注册表路径更新、收尾操作及注意事项。特别强调需要同步修改账户名、文件夹名和注册表关联路径,并建议操作前备份重要数据。文中还针对常见问题提供了解决方案,如软件报错时的符号链接创建方法。整个过程需谨慎操作,建议在管理员权限下逐步执行,修改完成后需验证系统及软件功能是否正常。

Qinti_mm的博客 3120

2019.10.3 noip模拟赛

T1 天空龙 巨水,不讲。 T3 太阳神 【问题描述】 太阳神拉很喜欢最小公倍数,有一天他想到了一个关于最小公倍 数的题目。 求满足如下条件的数对(a,b)对数: a,b 均为正整数且 a,b<=n 而 lcm(a,b)>n。 其中的 lcm 当然表示最小公倍数。答案对 1,000,000,007 取模 【输入格式】 第一行一个正整数 n。 【输出格式】 一行一个整数表示答案,对 1,...

qq_43041641的博客 330

手把手教你用C#实现TwinCAT 3 ADS通讯(附完整代码示例)

本文详细解析了如何使用C#实现TwinCAT 3 ADS通讯,包括协议核心价值、开发环境配置、变量通信实践及高级应用场景。通过完整代码示例和性能优化技巧,帮助开发者高效实现工业自动化系统中的实时数据交换,特别适合倍福(Beckhoff)平台用户。

weixin_29230901的博客 117

【GDOI2017模拟11.7】太阳神

题目描述太阳神拉很喜欢最小公倍数,有一天他想到了一个关于最小公倍数的题目。 求满足如下条件的数对(a,b)对数:a,b均为正整数且a,b<=n而lcm(a,b)>n。其中的lcm当然表示最小公倍数。答案对1,000,000,007取模 对于20%的数据n<=2000; 对于40%的数据n<=10000000; 对于60%的数据n<=100000000; 对于80%的数据n<=1000000

ZLTJohn的博客 1509

基于cat12和SPM12进行VBM&SBM数据分析笔记1——数据预处理

基于cat12数据分析基础教程笔记 今年是小编步入研究生生活的第一年,研究方向待定,但主要以磁共振成像为主,以后会不断地总结这方面的知识,涉及MRI扫描,数据分析基础方法理论,软件操作教程,文献阅读笔记总结等等,用来记录我的研究生三年学习过程。编写尽量简洁明了,通俗易懂,本就是小白,也能体会小白的痛。不过这也要谢谢一个人手动@小白(网名),是他教我要把自己所学的写下来,讲出来才能真正的做到输入和输出,查漏补缺。而cat12软件操作是我面临的第一个数据分析的训练,写的可能也不会非常到位,还望各位专业人士指出改

Sophia2023的博客 4万+

dex2oat编译优化调试

dex2oat编译调试的一些技巧和方法

jidapenglin28的专栏 5044

NOIP模拟赛 太阳神

太阳神拉很喜欢最小公倍数,有一天他想到了一个关于最小公倍 数的题目。 求满足如下条件的数对(a,b)对数:a,b 均为正整数且a,b&lt;=n 而 lcm(a,b)&gt;n。其中的lcm 当然表示最小公倍数。答案对1,000,000,007 取模 n&lt;=10000000000 换个方向,求lcm(a,b)&lt;=n的对数。 设gcd(a,b) = d sigma([a/d * b/d ...

Freopen的博客 538

11-16 Fluent结果查看及后处理功能(做动画、监控点)

监控点、面及动画操作

zheaa的博客 1万+

[JZOJ4872]太阳神

题目大意求满足如下条件的数对(a,b)(a,b)对数:a,b∈Z+a,b\in \mathbb Z^+且a,b≤na,b\le n而lcm(a,b)>n\mathrm{lcm}(a,b)>n。 答案对109+710^9+7取模。1≤n≤10101\le n\le 10^{10}题目分析正难则反:用n2n^2减去lcm(a,b)≤n\mathrm{lcm}(a,b)\le n的对数。 我们枚举d=

待成熟的葡萄 1067

TenserRt平台SMOKE 3D目标检测部署完整教程:从理论到实践

本教程详细介绍了在RK3588平台上部署SMOKE 3D目标检测模型的完整流程。SMOKE是一种创新的单阶段单目3D检测方法,通过关键点估计直接预测3D目标信息,有效解决了深度信息缺失等挑战。文章从理论基础出发,解析了SMOKE的核心算法和网络架构,包括DLA-34主干网络和关键点中心化策略。同时提供了详细的Docker环境配置、模型导出到ONNX格式的实践指南,以及TensorRT引擎构建和性能优化的关键技术要点。该教程为开发者在嵌入式平台上实现高效3D目标检测提供了完整的技术参考。

LXY_LOVE36的博客 371

RT-DETR算法优化改进:轻量级上采样CARAFE算子 | 注意力机制大作战

上采样操作CARAFE,具有感受野大、内容感知、轻量级、计算速度快等优点,引入RT-DETR二次创新;1)代替Upsample进行使用;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1265

qt编译太阳神三国杀

qt编译太阳神三国杀 编译前置条件 qt环境本文环系统包括win10(qt5.14),deepinv15(qt5.9.9) g++编译,本文win10采用的是mingw64编译器 1.下载源码github源码,下载比较慢的去gitee找找 2.下载qt,win和linux自己操作,版本大于5.3就行 3.打开qtCreator,选中源码的.pro文件 4.开始编译 下载swig 编译swig win10的直接下载可执行版,deepin下载源码,直接 sudo make install 利

weixin_43328357的博客 1885

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Eclipse 3 6 M7 太阳神版 发布

Eclipse 3 6 M7 太阳神版 发布

hffyyg的博客 194

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

lua 范例_如何将太阳神三国杀扩展武将的lua代码导入游戏?

第一步(备齐软件):已有软件请跳过这一步,如果太阳神三国杀版本太老以下步骤有可能会产生错误结果①推荐下载最新版本的太阳神三国杀,可以上太阳神三国杀贴吧置顶帖找,推荐布鸽版(太阳神三国杀(身份版V2)-20180828及以后版本):【鸽之末路】太阳神三国杀布鸽版_太阳神三国杀吧_百度贴吧​tieba.baidu.com上面的链接用不了的话请用这个网盘资源(太阳神三国杀身份版V2-20181004版,...

weixin_36285392的博客 1921

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

如何获得最新的太阳神三国杀 自己Qt编译

太阳神三国杀,是一个基于C++ QT GUI框架的三国杀非官方开源软件,开发者:Moligaloo(开发者网站:http://mogara.org/)。可以在它上面体验一些不同的模式,尤其可以体验一些在测试服上运行,但却还未上线的新武将。相信有些小伙伴发现贴吧里的太阳神三国杀久久不更新。所谓自己动手丰衣足食,小编下面跟大家一步一步讲述如何获得与github上代码同步(也就是最新版)的太阳神三国杀

imxiangzi的专栏 3923

Mac下编译太阳神三国杀源码

Mac系统版本是10.13.2,Qt版本是5.11,参考官方博文:太阳神三国杀 Mac 版构建指南 安装Qt5 下载最新的Qt5安装包qt-opensource-mac-x64-5.11.0.dmg,安装步骤可参考博文 https://blog.youkuaiyun.com/qq_37486501/article/details/80632151 安装过程类似,只不过版本不同,这里使用的版本是5.11。创...

xinxin_2011的博客 3753

Eclipse 3.6 M7(太阳神版)发布

<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅 0 2

chszs的专栏 1万+

vs code ssh 解析config_周六:札幌冈萨VS名古屋鲸;柏太阳神VS鹿岛鹿角

老冯玩个球,每天玩场球,带你快乐解析赛事大家好我是老冯,如果你不想看前面的理性分析,可以直接看最后面的综合理性分析周六赛事:札幌冈萨多 VS 名古屋鲸八柏太阳神 VS 鹿岛鹿角更多临场精准解析,关注我的专栏老冯玩个球​zhuanlan.zhihu.com一丶札幌冈萨多 VS 名古屋鲸八札幌冈萨多札幌冈萨多上赛季稳居中游,进攻端表现不俗,新赛季的防守能够改善的话,有望能再创造更好的成绩。上季土炮铃木...

weixin_40009063的博客 138

如何将虚拟桌面扩展到显示器_如何将太阳神三国杀扩展武将的lua代码导入游戏?...

第一步(备齐软件):已有软件请跳过这一步,如果太阳神三国杀版本太老以下步骤有可能会产生错误结果①推荐下载最新版本的太阳神三国杀,可以上太阳神三国杀贴吧置顶帖找,推荐布鸽版(太阳神三国杀(身份版V2)-20180828及以后版本):【鸽之末路】太阳神三国杀布鸽版_太阳神三国杀吧_百度贴吧​tieba.baidu.com上面的链接用不了的话请用这个网盘资源(太阳神三国杀身份版V2-20181004版,...

weixin_39933026的博客 371

从太阳神到弥勒佛

对于学习英语的人来说,太阳神,最为知名的,就是阿波罗(Apollo),人类最近的历史,最知名的,就是阿波罗计划。说白了,阿波罗计划,这个音译词,对于英语学渣来说,有可能转过弯来要有一点时间,但一般的人来说,都知道,其实就是“太阳神计划”。事实上,在IT领域,Apollo是非常多的项目的名称,比如国内比较知名的是携程开源的一款分布式或微服务系统的配置中心。

nshkfhwr的博客 2557

[希腊神话] 3-Apollo(阿波罗,太阳神) [English Edition][附译文]

3 Apollo Among the crowd of Olympian gods the one most widely admired was Apollo.He was the son of Zeus and Leto.According to Greek mythology,Leto was driven by Hera from land to land at last Poseid...

weixin_30642561的博客 426

这样记单词有如神助:解构太阳神

晴朗的夜空,繁星满天,可是反过来,我们会看到,白天只有一个太阳,独占整个天空。而万物生长靠太阳,因为阳光热烈,有如鲜血;傍晚时分,残阳如血,自长空坠落,染红整个天边,让人感受到一种无比的悲壮和神圣。太阳,是海子心目中最大的幸福。对于海子来说,爱情受损,则如人生受难,就像身体被撕裂、灵魂被洞穿,掉血掉肉,悲壮如灭。海子,用书写太阳的方式,书写西藏和爱情,同样写得无比地悲壮和神圣。今天,我们就用海子心中最崇高的歌颂对象——太阳,来记忆海量的单词。中国现代诗人海子,其诗歌中有一个最大的主题,就是太阳。

nshkfhwr的博客 853

印度“太阳神-L1号”完成第二次绕地机动,计划9月10日进行第三次

印度一直积极推动空间技术研究和探索,此次探测器的成功发射和执行,彰显了印度在航天领域的强大实力和潜力,对于提高印度在空间科技领域的国际地位具有重要意义,也为印度未来太空探索之路奠定了坚实基础。虽然目前探测器仍在完成任务的过程中,但相关专家预计,“印度太阳神-L1号”探测器将为日后探索太阳提供更多有价值的信息和数据。随着“印度太阳神-L1号”探测器继续飞往目的地的过程中,我们期待着更多相关消息的传来,也期望印度的空间探索事业能够走得更加顺利和成功,为人类对于太空探索的深入了解作出自己的贡献。

wy_technology的博客 95
上一篇: [bzoj4401]块的计数
下一篇: [bzoj4690]Never Wait for Weights
WerKeyTom_FTD
博客等级 码龄11年 357粉丝 831原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值