BZOJ1968: [Ahoi2005]COMMON 约数研究 线性筛
按照积性函数的定义筛一下这个积性函数即可.
#include <cstdio>
#include <algorithm>
#define N 1000004
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
int tot;
int f[N],prime[N],vis[N],sum[N];
int main()
{
//setIO("input");
int n,i,j;
scanf("%d",&n);
sum[1]=f[1]=1;
for(i=2;i<=n;++i)
{
if(!vis[i]) prime[++tot]=i,f[i]=2;
for(j=1;j<=tot&&1ll*i*prime[j]<=1ll*n;++j)
{
vis[i*prime[j]]=1;
if(i%prime[j]==0)
{
int h=i;
for(;h%prime[j]==0;h/=prime[j]);
f[i*prime[j]]=f[h]+f[i];
break;
}
else
{
f[i*prime[j]]=f[i]*f[prime[j]];
}
}
sum[i]=sum[i-1]+f[i];
}
printf("%d\n",sum[n]);
return 0;
}
BZOJ1968: [Ahoi2005]COMMON 约数研究 线性筛的更多相关文章
- bzoj千题计划170:bzoj1968: [Ahoi2005]COMMON 约数研究
http://www.lydsy.com/JudgeOnline/problem.php?id=1968 换个角度 一个数可以成为几个数的约数 #include<cstdio> #incl ...
- BZOJ1968 [Ahoi2005]COMMON 约数研究 数论
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1968 题意概括 求 ΣF(i) (1<=i<=n)N<=1000000 F( ...
- 【数论】bzoj1968 [Ahoi2005]COMMON 约数研究
对于i属于[1,n],i只能成为[1,n]中n/i个数的约数,易证. #include<stdio.h> int n,i; long long ans; int main() { scan ...
- [日常摸鱼]bzoj1968 [Ahoi2005]COMMON 约数研究
题意:记$f(n)$为$n$的约数个数,求$\sum_{i=1}^n f(i)$,$n \leq 10^6$. 我也不知道为什么我要来做这个- 直接枚举每个数会是哪些数的约数-复杂度$O(n log ...
- BZOJ1968 [Ahoi2005]COMMON 约数研究
Description Input 只有一行一个整数 N(0 < N < 1000000). Output 只有一行输出,为整数M,即f(1)到f(N)的累加和. Sample Input ...
- bzoj1968: [Ahoi2005]COMMON 约数研究(数论)
计算每一个数的贡献就好了..O(N) n/i只有2*sqrtn个取值于是可以优化到O(sqrtn) #include<bits/stdc++.h> #define ll long long ...
- [BZOJ1968][AHOI2005]COMMON约数研究 数学
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1968 直接计算每个因子的贡献就可以了. $Ans=\sum_{i=1}^n[\frac{n ...
- [Ahoi2005]COMMON 约数研究 【欧拉线性筛的应用】
1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 2939 Solved: 2169 [Submi ...
- BZOJ 1968: [Ahoi2005]COMMON 约数研究
1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 2032 Solved: 1537[Submit] ...
随机推荐
- txt\excel\cvs\xml存储测试数据
一.目录结构 二.txt存储数据 1.txtData.txt如下: 请您输入手机/邮箱/用户名 请您输入密码 请您输入验证码 2.helper中读取txt数据的代码 def readTXT(self) ...
- CentOS7 Python3上安装paramiko
1. CentOS 7下安装Python3.5 CentOS7默认安装了python2.7.5,要用 Python3需要自己手动安装.注意不要删除python2. 1.1 下载python3源码包 w ...
- 合并两个排序链表——牛客offer
题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 解题思路: 1.一般看到合并这类的题目就会很自然的想到创建一个新的链表,然后将两个链表根据一定 ...
- application.properties参数详解
# ----------------------------------------# CORE PROPERTIES# --------------------------------------- ...
- HTML——b i del a p img h1 h2 h3 h4 h5 h6 hr ol ul 标签的使用方法详解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 异常-try...catch的方式处理异常1
package cn.itcast_02; /* * 我们自己如何处理异常呢? * A:try...catch...finally * B:throws 抛出 * * try...catch...fi ...
- 在Markdown中写公式块
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. Markdown中的公式语法是遵循LaTex语法的 $ sum = \sum_{i ...
- java面试4
1.两个对象a和b,请问a==b和a.equals(b)有什么区别? a==b; 比较对象地址 a.equals(b);如果a对象没有重写equals方法,效果和==相同,如果重写了就按照重写的规则比 ...
- 判断一个数是否为回文数(js)
//判断是否为回文数:若n=1234321,则称n为一回文数 let readline = require("readline-sync"); let newNum = 0; co ...
- 【1】Zookeeper概述
一.前言 在"网络是不可靠的"这一前提下,分布式系统开发需要解决如下四个问题: 客户端如何访问众多服务? 解决方案:服务聚合,使用API网关 服务于服务之间如何通信? 解决方案 ...