【反演复习计划】【COGS2431】爱蜜莉雅的求助
出题人怎么这么不认真啊==明明官方译名是爱蜜莉雅……
而且我们爱蜜莉雅碳是有英文名哒!是Emilia。你那个aimiliya我实在是无力吐槽……
不过抱图跑23333首先这很像约数个数和函数诶!
但是唯一的不同是,D(1)=1,F(1)=0.
那么如果就是D,我们怎么做?
原题意思是求以下式子:
$Ans\sum\limits_{i=1}^{n}d(gcd(i,n))$
我们知道:
$D(n)=\sum\limits_{d|n}1$
所以:
$Ans=\sum\limits_{d|n}\sum\limits_{i=1}^{\frac{n}{d}}D(d)[gcd(i,\frac{n}{d}==1]$
$Ans=\sum\limits_{d|n}D(d)*\sum\limits_{i=1}^{\frac{n}{d}}[gcd(i,\frac{n}{d}==1]$
第二个求和就相当于枚举跟$\frac{n}{d}$互质的数。这不是$\phi$的定义吗?
所以:
$Ans=\sum\limits_{d|n}D(d)*\phi(\frac{n}{d})$
这是……狄利克雷卷积?
$D*\phi=1*1*\phi=id*1$
$Ans=\sum\limits_{d|n}\frac{n}{d}$
那么如果是这个呢?这个f(1)=0的话,我们相当于把1多算了$\phi(n)$次,减去就行了。
所以最后:
$Ans=\sum\limits_{d|n}\frac{n}{d}-\phi(n)$
复杂度:$O(\sqrt{n})$

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
ll calcsum(ll n){
int m=(int)sqrt(n+0.5);
ll cnt=,ans=;
for(int i=;i<=m;i++){
if(n%i==){
ans+=i;if(i*i!=n)ans+=n/i;
else break;
}
}
return ans;
}
ll calcphi(ll n){
int m=(int)sqrt(n+0.5);
ll ans=n;
for(int i=;i<=m;i++)if(n%i==){
ans=ans/i*(i-);
while(n%i==)n/=i;
if(n==)break;
}
if(n>)ans=ans/n*(n-);
return ans;
}
int main(){
freopen("aimiliyadehelp.in","r",stdin);
freopen("aimiliyadehelp.out","w",stdout);
cin>>n;
cout<<calcsum(n)-calcphi(n)<<endl;
return ;
}
【反演复习计划】【COGS2431】爱蜜莉雅的求助的更多相关文章
- 【反演复习计划】【51nod1594】Gcd and Phi
现在感觉反演好多都是套路QAQ…… #include<bits/stdc++.h> using namespace std; ; typedef long long ll; int n,c ...
- 【反演复习计划】【COGS2432】爱蜜莉雅的施法
也是一个反演. 第一次手动推出一个简单的式子,激动.jpg 原题意思是求:$Ans=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\phi(gcd(i,j))$随 ...
- 【反演复习计划】【COGS2433】&&【bzoj3930,CQOI2015选数】爱蜜莉雅的冰魔法
同bzoj3930. (日常盗题图) #include<bits/stdc++.h> #define N 1000010 #define yql 1000000007 #define ll ...
- 【反演复习计划】【bzoj1011】zap-queries
快三个月没做反演题了吧…… 感觉高一上学期学的全忘了…… 所以还得从零开始学推式子. # bzoj1011 标签(空格分隔): 未分类 --- 原题意思是求以下式子:$Ans=\sum\limits_ ...
- 【反演复习计划】【bzoj4407】于神之怒加强版
#include<bits/stdc++.h> #define N 5000010 #define yql 1000000007 using namespace std; typedef ...
- 【反演复习计划】【bzoj2154】Crash的数字表格
膜拜cdc……他的推导详细到我这种蒟蒻都能看得懂! 膜拜的传送门 所以我附一下代码就好了. #include<bits/stdc++.h> #define N 10000005 #defi ...
- 【反演复习计划】【bzoj3529】数表
Orz PoPoQQQ大爷 按照他ppt的解法,这题可以划归到之前的题了OrzOrz 跪wy写的题解(Stealth Assassin)https://www.luogu.org/wiki/show? ...
- 【反演复习计划】【bzoj3994】DZY loves maths
这题大概就是提取一下d,然后就跟前面的题目差不多了. #include<bits/stdc++.h> #define N 10000005 using namespace std; typ ...
- 【反演复习计划】【bzoj3994】约数个数和
首先要用数学归纳证明一个结论,不过因为我实在是懒得打公式了... 先发代码吧. #include<bits/stdc++.h> #define N 50005 using namespac ...
随机推荐
- resetroot_169route_python3(用于ubuntu16.04)
#!/usr/bin/python3 import os import sys import json import urllib.request import urllib.parse import ...
- java 生成简单word(利用Itext工具),生成简单Excel,以及下载笔记
1.java 生成简单word(包含图片表格) pom中加入itext 相关依赖 <dependency> <groupId>com.lowagie</groupId&g ...
- Vue折腾记 - (2)写一个不大靠谱的面包屑组件
先看效果图 我把页面标题和面包屑封装到一起..就不用涉及到组件的通讯了,不然又要去监听路由或者依赖状态去获取 这里写图片描述 疑惑解答: 点击父(也就是折叠菜单)为什么会跑到子菜单第一个 因为我第一个 ...
- [译]Python - socket.error: Cannot assign requested address
原文来源: https://stackoverflow.com/questions/48306528/python-socket-error-cannot-assign-requested-addre ...
- Python中enumerate函数用法详解
enumerate函数用于遍历序列中的元素以及它们的下标,多用于在for循环中得到计数,enumerate参数为可遍历的变量,如 字符串,列表等 一般情况下对一个列表或数组既要遍历索引又要遍历元素时, ...
- webmagic 二次开发爬虫 爬取网站图片
webmagic的是一个无须配置.便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫. webmagic介绍 编写一个简单的爬虫 webmagic的使用文档:http://w ...
- Packet filtering with Linux & NAT
http://www.linuxfocus.org/ChineseGB/May2003/article289.shtml Gateway, Proxy-Arp 和 Ethernet Bridge ? ...
- Bjarne Stroustrup 语录1
1. 请谈谈C++书. 没有,也不可能有一本书对于所有人来说都是最好的.不过对于那些真正的程序员来说,如果他喜欢从“经典风格”的书中间学习一些新的概念和技术,我推荐我的The C++ Program ...
- Maven中mirrors和repository的关系
一.前言 之前没有搞清楚pom.xml里面配置的repositorys节点配置的仓库和mirrors里面配置的仓库的“镜像”间的关系,特意去搜索了相关内容,这边有篇文章讲得透彻,所以这边转载一下~ 二 ...
- enter & keypress
enter & keypress https://stackoverflow.com/questions/905222/enter-key-press-event-in-javascript ...