BZOJ_4804_欧拉心算_欧拉函数
BZOJ_4804_欧拉心算_欧拉函数
Description
给出一个数字N

Input
Output
Sample Input
10
Sample Output
$=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\sum\limits_{p=1}^{n}\varphi(p)*[gcd(i,j)=p]$
$=\sum\limits_{p=1}^{n}\varphi(p)\sum\limits_{i=1}^{n/p}\sum\limits_{j=1}^{n/p}[gcd(i,j)=p]$
$=\sum\limits_{p=1}^{n}\varphi(p)f(n/p)$
其中$f(n)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[gcd(i,j)=1]=2*\varphi(n)-1$
然后根号处理即可。
#include <cstdio>
#include <string.h>
#include <algorithm>
using namespace std;
typedef long long ll;
int prime[10000050],cnt,phi[10000050];
ll s[10000050];
bool vis[10000050];
void init() {
int i,j;
phi[1]=s[1]=1;
for(i=2;i<=10000000;i++) {
if(!vis[i]) {
prime[++cnt]=i; phi[i]=i-1;
}
for(j=1;j<=cnt&&i*prime[j]<=10000000;j++) {
vis[i*prime[j]]=1;
if(i%prime[j]==0) {
phi[i*prime[j]]=phi[i]*prime[j]; break;
}
phi[i*prime[j]]=phi[i]*phi[prime[j]];
}
s[i]=s[i-1]+phi[i];
}
}
ll calc(int n) {
int i,lst;
ll ans=0;
for(i=1;i<=n;i=lst+1) {
lst=n/(n/i);
ans+=(s[lst]-s[i-1])*(2*s[n/i]-1);
}
return ans;
}
int main() {
init();
int T;
scanf("%d",&T);
int n;
while(T--) {
scanf("%d",&n);
printf("%lld\n",calc(n));
}
}
BZOJ_4804_欧拉心算_欧拉函数的更多相关文章
- 【bzoj4804】欧拉心算 莫比乌斯反演+莫比乌斯函数性质+线性筛
Description 给出一个数字N 求\(\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(gcd(i,j))\) Input 第一行为一个正整数T,表示数据组数. 接下来T ...
- [SDOI2012]Longge的问题 欧拉反演_欧拉函数
Code: #include<cstdio> #include<algorithm> #include<cmath> #include<string> ...
- BZOJ_2186_[Sdoi2008]沙拉公主的困惑_欧拉函数
BZOJ_2186_[Sdoi2008]沙拉公主的困惑_欧拉函数 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行 ...
- bzoj 4804 欧拉心算 欧拉函数,莫比乌斯
欧拉心算 Time Limit: 15 Sec Memory Limit: 256 MBSubmit: 408 Solved: 244[Submit][Status][Discuss] Descr ...
- 【BZOJ4804】欧拉心算 莫比乌斯反演+线性筛
[BZOJ4804]欧拉心算 Description 给出一个数字N Input 第一行为一个正整数T,表示数据组数. 接下来T行为询问,每行包含一个正整数N. T<=5000,N<=10 ...
- 【bzoj4804】欧拉心算 解题报告
[bzoj4804]欧拉心算 Description 给出一个数字\(N\),计算 \[\sum_{i=1}^n\sum_{j=1}^n \varphi(\gcd(i,j))\] Input 第一行为 ...
- python中multiprocessing.pool函数介绍_正在拉磨_新浪博客
python中multiprocessing.pool函数介绍_正在拉磨_新浪博客 python中multiprocessing.pool函数介绍 (2010-06-10 03:46:5 ...
- Flutter实战视频-移动电商-35.列表页_上拉加载更多制作
35.列表页_上拉加载更多制作 右侧列表上拉加载配合类别的切换 上拉加载需要一个page参数,当点击大类或者小类的时候,这个page就要变成1 provide内定义参数 首先我们需要定义一个page的 ...
- Flutter移动电商实战 --(35)列表页_上拉加载更多制作
右侧列表上拉加载配合类别的切换 上拉加载需要一个page参数,当点击大类或者小类的时候,这个page就要变成1 provide内定义参数 首先我们需要定义一个page的变量 下图是我们之前在首页的时候 ...
随机推荐
- CSS基础:层叠顺序和层叠上下文
简介 在考虑到两个元素可能重叠的情况下,层叠顺序决定了那个元素在前面,那个元素在后面,这是针对普通元素而言.而层叠上下文和块级格式化上下文 (BFC) 一样,基本上也是由一些 CSS 属性创建的,它单 ...
- Eclipse+Resin开发环境迁移中发生的一些问题
换新机器了,系统也从XP升级到64位WIn7.某些旧工具直接无法用了.下面简单谈一下标题的内容 1.非泛型的容器类引入在JDK1.7以下编译好像已经不行了.比如Java.util.ArrayList这 ...
- java.lang.SecurityException: Can't make field constructor accessible
原本使用GsonConvertor,在Android版本5.1.1上没有任何问题,结果切换到版本6.0.1上,出现以下所示问题: java.lang.IllegalArgumentException: ...
- AWS技术会议笔记
Intel和云: SDI:软件定义架构 3D-XPointer:可以媲美内存速度的SSD 应用可以控制L3 Cache的使用 Helix物联网设备用 精益创业之路: 如何快速获得第一批用户---先要养 ...
- jtds驱动更新对一个老问题的解决
07年年末的一篇blog: 以前网站做初期开发时,有一个问题:hibernate下text大字符串读取时出这个异常:JDBCExceptionReporter - The amount of data ...
- C++ 延时等待(sleep/timer/wait)
原文链接:http://blog.csdn.net/tangweide/article/details/7063747 (-)使用_sleep()函数 #include <iostream> ...
- Bootstrap 4,“未捕获错误:Bootstrap工具提示需要Tether(http://github.hubspot.com/tether/)”
如果出现了这个错误,我想你是没有引用tether文件,这在v4之前不需要单独引入的. https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/te ...
- python都能做什么
一.python: Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起.常见的一种应用情形是,使用Python快速生成程序的原型 ...
- Xapth 添加注释头
private static void updateMybatisXml(String url, String username, String password) { DocumentBuilder ...
- Java基础:JVM垃圾回收算法
众所周知,Java的垃圾回收是不需要程序员去手动操控的,而是由JVM去完成.本文介绍JVM进行垃圾回收的各种算法. 1. 如何确定某个对象是垃圾 1.1. 引用计数法 1.2. 可达性分析 2. 典型 ...