BZOJ2705:[SDOI2012]Longge的问题——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2705
Description
Input
Output
Sample Input
Sample Output
————————————————————————————————————————————
http://hzwer.com/3470.html的博客已经讲的蛮清楚了,这里在复述一遍。
gcd(i,n)的值显然是n的约数,这里取k=gcd(i,n),满足该关系式的i的个数为s(k)。
则答案为∑k*s(k)(k|n)
又因为k=gcd(i,n)推出gcd(n/k,i/k)=1,设t=i/k,则n/k与t互质,求出t的个数。
这显然可以用欧拉函数解决,那么s(k)=phi(n/k)
#include<cstdio>
#include<queue>
#include<cctype>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll phi(ll x){
ll res=x;
for(ll i=;i*i<=x;i++){
if(x%i==){
res-=res/i;
while(x%i==)x/=i;
}
}
if(x>)res-=res/x;
return res;
}
int main(){
ll n;
scanf("%lld",&n);
ll ans=;
for(int i=;i*i<=n;i++){
if(n%i==){
ans+=(ll)i*phi(n/i);
if(i*i<n)ans+=(ll)(n/i)*phi(i);
}
}
printf("%lld\n",ans);
return ;
}
BZOJ2705:[SDOI2012]Longge的问题——题解的更多相关文章
- BZOJ2705 SDOI2012 Longge的问题 【欧拉函数】
BZOJ2705 SDOI2012 Longge的问题 Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, ...
- 【欧拉函数】BZOJ2705: [SDOI2012]Longge的问题
Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). Solut ...
- BZOJ2705: [SDOI2012]Longge的问题
Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). Input 一 ...
- bzoj2705: [SDOI2012]Longge的问题 欧拉定理
题意:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). 题解:考虑n的所有因子,假设有因子k,那么对答案的贡献gcd(i,n)==k的个数即gcd(i/k,n/k)== ...
- BZOJ2705: [SDOI2012]Longge的问题(欧拉函数)
题意 题目链接 Sol 开始用反演推发现不会求\(\mu(k)\)慌的一批 退了两步发现只要求个欧拉函数就行了 \(ans = \sum_{d | n} d \phi(\frac{n}{d})\) 理 ...
- 【数论】【枚举约数】【欧拉函数】bzoj2705 [SDOI2012]Longge的问题
∵∑gcd(i, N)(1<=i <=N) =k1*s(f1)+k2*s(k2)+...+km*s(km) {ki是N的约数,s(ki)是满足gcd(x,N)=ki(1<=x< ...
- [BZOJ2705][SDOI2012]Longge的问题 数学
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2705 首先分析得题目所求$gcd(i,N)$的取值只可能是$N$的因子,则有$$Ans=\ ...
- bzoj2705 [SDOI2012]Longge的问题——因数
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2705 一开始自己想了半天... 有了点思路:遍历 n 的因数 k,每个因数要预处理出 gcd ...
- 【bzoj2705】[SDOI2012]Longge的问题
2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 2507 Solved: 1531[Submit][ ...
随机推荐
- 一个只有十行的精简MVVM框架(上篇)
本文来自网易云社区. 前言 MVVM模式相信做前端的人都不陌生,去网上搜MVVM,会出现一大堆关于MVVM模式的博文,但是这些博文大多都只是用图片和文字来进行抽象的概念讲解,对于刚接触MVVM模式的新 ...
- WPF Style Setter use a TemplateBinding?
<Style TargetType="{x:Type local:ImageButton}"> <Setter Property="Horizontal ...
- dva 路由跳转
1.从props取出并传递history 取 const { history } = this.props 用 <button onClick={ () => history.push(' ...
- Python 的非正式介绍
在下面的例子中,通过提示符 (>>> 与 ...) 的出现与否来区分输入和输出:如果你想复现这些例子,当提示符出现后,你必须在提示符后键入例子中的每一个词:不以提示符开头的那些行是解 ...
- 209. First Unique Character in a String
Description Find the first unique character in a given string. You can assume that there is at least ...
- 【springmvc+mybatis项目实战】杰信商贸-5.生产厂家DAO+SERVICE+CONTROLLER+JSP+配置文件
上一篇我们创建了工程和一个Factory的po对象(javaBean),我们也写好了Mapper的映射文件,接下来我们来完成生产厂家的DAO与SERVICE,以及CONTROLLER,还有做显示的JS ...
- Android开发-API指南-<path-permission>
<path-permission> 英文原文:http://developer.android.com/guide/topics/manifest/path-permission-elem ...
- block inline 和 inline-block
概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素). block元素通常 ...
- vista x64 vs2010 win32添加资源 未能完成操作解决办法
非常痛苦的感觉,不能用vc6,msdn library也不好用,去2k3系统试了下,没有任何问题,无奈想重装系统了,但是太浪费时间,装了虚拟机也是vistax64的,安装之后正常... 卸载重新安装依 ...
- openstack对接VMware浅析
前言 本文是对openstack对接vmware的浅析,所以本文重点是以下两点: 先了解它的整体架构,搞清楚为什么要用这样的架构: 然后再了解架构中的各个组件,组件提供的主要功能与各个组件之间的交互 ...