loj124 除数函数求和 1】的更多相关文章

loj124 除数函数求和 1 https://loj.ac/problem/124 $\sum_{i=1}^n(\sum_{d|i}d^k)=\sum_{i=1}^n(i^k*{\lfloor}{\frac{n}{i}}{\rfloor})$ 不能直接数论分块了,但是一看数据范围,可以线性筛啊 怎么筛呢?可以把所有的$i^k$筛出来.就是质数直接算,其他的根据$(a*b)^k=a^k*b^k$在被筛掉的时候递推出来. #include<cstdio> #include<algorith…
一.题目 #124. 除数函数求和 二.分析 比较好的一题,首先我们要对题目和样例进行分析,明白题目的意思. 由于对于每一个$d$,它所能整除的数其实都是定的,且数量是$ \lfloor \frac{n}{d} \rfloor $ 最终推导出这个公式 $$  ans =   \sum_{d=1}^{n} \lfloor \frac{n}{d} \rfloor d^{k}$$ 对于$n <= 10^{7}$其实复杂度是可以接受的.但是对于求$d^{k}$这个复杂度如果直接用快速幂预处理肯定会T.…
题目描述 $\sigma_k(n) = \sum_{d | n} d ^ k$​ 求 $\sum_{i=1}^n\sigma_k(i)$ 的值对 109 取模的结果. 输入格式 第一行两个正整数 n,k . 输出格式 第一行输出答案. 样例 输入样例 5 2 输出样例 63 数据范围与提示 对于 100% 的数据,1≤n,k≤107​7​​ . Solution: 本题ZYYS... 直接枚举显然不行,我们考虑改为求$n$的某一因子$d$在整个函数中的贡献是多少. 套上数论分块的思想,一个因子$…
链接:https://loj.ac/problem/124 就是筛一下积性函数. #include<bits/stdc++.h> #define ll long long #define maxn 10000000 #define ha 1000000007 using namespace std; int zs[maxn/10],t=0; int low[maxn+5]; int f[maxn+5]; int mik[maxn+5]; bool v[maxn+5]; int n,k; inl…
link : https://loj.ac/problem/125 分块calc即可. #include<bits/stdc++.h> #define ll long long using namespace std; const int ha=998244353; int n,ans[3]; inline int add(int x,int y){ x+=y; return x>=ha?x-ha:x; } inline int ci0(int x){ return x%ha; } in…
https://loj.ac/problem/125 $原式=2\sum_{i=1}^n(i^2*{\lfloor}{\frac{n}{i}}{\rfloor})+3\sum_{i=1}^n(i*{\lfloor}{\frac{n}{i}}{\rfloor})+5\sum_{i=1}^n({\lfloor}{\frac{n}{i}}{\rfloor})$ #include<cstdio> #include<algorithm> #include<cstring> #in…
一.设计思想:由于命令行接收的是字符串类型,因此应先将字符串类型转化为整型或其他字符型,然后利用for循环求和并输出结果 二.程序流程图: 三.源程序代码:   //王荣荣 2016/9/23      package demo;     public class CommandParameter {     public static void main(String[] args) {             // TODO Auto-generated method stub      …
方法一: package com.smbea.demo; public class Student { private int sum = 0; /** * 递归求和 * @param num */ public void sum(int num) { this.sum += num--; if(0 < num){ sum(num); } else { System.out.println("sum = " + sum); } } } 方法二: package com.smbea…
如A1=3779.3759.3769.3781.3750,A2对A1中4个数字求和怎么求!请高手赐教! 方法一:在B1中输入公式=SUM(MID(A1,{1,6,11,16,21},4)*1) 方法二:定义一个名称,比如"求和",输入=EVALUATE(SUBSTITUTE(Sheet1!$A2,".","+"))后确定,在B1中输入=求和,即得到你要的结果.方法二通用性更强些. 方法三:用VBA求解.进入VBE编辑环境,插入模块,输入代码:Fu…
codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运用的时候,需要更新或查找的区间是储存在y1,y2变量里面的,值是储存在变量v里面的,查询结果储存在变量_sum里面. 每次更新(调用update函数)时,必须要维护更新区间上层的线段树,即更新节点上面的线段树表示的和是准确的和. 在update函数更新的时候,如果线段树分成区间包含于所要求的区间那么…