LOJ #6053. 简单的函数
$Min$_$25$筛模版题
为什么泥萌常数都那么小啊$ QAQ$
传送门:Here
题意:
$ f(1)=1$
$ f(p^c)=p⊕c(p 为质数,⊕ 表示异或)$
$ f(ab)=f(a)f(b)(a 与 b 互质)$
求$ \sum\limits_{i=1}^n f(i)$
$ solution:$
显然有$ f(P_i)=P_i-1+2*[P_i=2]$
暂时忽略$ P_i=2$的情况求出质数贡献
然后再把答案$ +2$即可
$ my \ code: $
#include<ctime>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#define p 1000000007
#define M 200010
#define rt register int
#define ll long long
using namespace std;
inline ll read(){
ll x = ; char zf = ; char ch = getchar();
while (ch != '-' && !isdigit(ch)) ch = getchar();
if (ch == '-') zf = -, ch = getchar();
while (isdigit(ch)) x = x * + ch - '', ch = getchar(); return x * zf;
}
void write(ll y){if(y<)putchar('-'),y=-y;if(y>)write(y/);putchar(y%+);}
void writeln(const ll y){write(y);putchar('\n');}
int i,j,k,m,x,y,z,cnt,sz;ll n;
int sp[M],ss[M];bool pri[M];
int id1[M],id2[M],t,h[M];ll g[M],q[M];
#define inv2 500000004
void init(){
sz=sqrt(n);
for(rt i=;i<=sz;i++){
if(!pri[i])ss[++cnt]=i,sp[cnt]=(sp[cnt-]+i)%p;
for(rt j=;i*ss[j]<=sz&&j<=cnt;j++){
pri[i*ss[j]]=;
if(i%ss[j]==)break;
}
}
for(ll i=;i<=n;){
ll v=n/i;ll R=n/v;q[++t]=v;
if(v<=sz)id1[v]=t;else id2[R]=t;
v%=p;h[t]=v-;g[t]=v*(v+)%p*inv2%p-;
i=R+;
}
}
inline int id(const ll x){return x<=sz?id1[x]:id2[n/x];}
int S(ll x,int y){
if(x<=||ss[y]>x)return ;
ll ret=g[id(x)]-sp[y-]+y-;
for(rt i=y;(ll)ss[i]*ss[i]<=x&&i<=cnt;i++)
for(ll j=ss[i],e=;j*ss[i]<=x;j*=ss[i],e++)
(ret+=(ll)(ss[i]^e)*S(x/j,i+)+(ss[i]^e+))%=p; return ret;
}
int main(){
n=read();init();
for(rt j=;j<=cnt;j++)
for(rt i=;i<=t&&q[i]>=(ll)ss[j]*ss[j];i++){
const int k=id(q[i]/ss[j]);
(g[i]-=(ll)ss[j]*(g[k]-sp[j-]))%=p;
(h[i]-=(h[k]-j+))%=p;
}
for(rt i=;i<=t;i++)(g[i]-=h[i])%=p;
if(n==)cout<<;else cout<<(S(n,)++p)%p;
return ;
}
LOJ #6053. 简单的函数的更多相关文章
- LOJ 6053 简单的函数——min_25筛
题目:https://loj.ac/problem/6053 min_25筛:https://www.cnblogs.com/cjyyb/p/9185093.html 这里把计算 s( n , j ) ...
- loj 6053 简单的函数 —— min_25筛
题目:https://loj.ac/problem/6053 参考博客:http://www.cnblogs.com/zhoushuyu/p/9187319.html 算 id 也可以不存下来,因为 ...
- LOJ.6053.简单的函数(Min_25筛)
题目链接 Min_25筛见这里: https://www.cnblogs.com/cjyyb/p/9185093.html https://www.cnblogs.com/zhoushuyu/p/91 ...
- loj#6053. 简单的函数(Min_25筛)
传送门 题解 \(Min\_25\)筛有毒啊--肝了一个下午才看懂是个什么东西-- \(zsy\)巨巨强无敌-- //minamoto #include<bits/stdc++.h> #d ...
- Case when 的用法,简单Case函数
Case when 的用法,简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result ...
- python之简单的函数介绍(http://docs.python.org/3/library)
Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. 在上面的网站上我们可以进行查询,Python具体都有哪些函数. 我们也可以再交互命令行中来查找函数: >> ...
- php简单表格函数
php简单表格函数 代码 <?php //ctrl+shift+j /** * @param unknown $rows * @param unknown $cols * @param stri ...
- python简单的函数定义和用法实例
python简单的函数定义和用法实例 这篇文章主要介绍了python简单的函数定义和用法,实例分析了Python自定义函数及其使用方法,具有一定参考借鉴价值,需要的朋友可以参考下 具体分析如下: 这里 ...
- python简单的函数应用
一个简单的函数应用,包括自定义函数,lambda函数,列表解析. 1 #!usr/bin/env python3 2 # -*- coding:utf-8 -*- 3 4 #开始定义函数 5 def ...
随机推荐
- java面试——jvm
背景:用来总结java面试过程中与jvm相关的问题. 垃圾回收以及优化总结 <JVM 垃圾回收器工作原理及使用实例介绍> 介绍常用的垃圾回收算法,垃圾收集器,垃圾收集器相关的调试参数. J ...
- 第七篇-列表式App:ListActivity及ListView
一.新建一个empty activity的项目. 二.修改MainActivity.java: extends AppCompactActivity改为extends ListActivity.注释掉 ...
- linux less对文件内容进行搜索
[ 可以先用 less 文件名 来打开文件, 然后可以按回车,打开底部命令输入行(即出现一个冒号的位置), 然后可以使用 键盘上的 home 键跳到文件开始,end键跳到最后,PgUp向前翻页,Pg ...
- java 中,new一个新对象时,是先给成员变量赋上初值后 再来调用类中的构造函数的。
今天学习时法现一个问题,我们定义了一个Test类,在主类中new了一个他的对象,发现:在新建对象中所有的成员变量是先给定了默认初值的:0,null或者false, 之后再调用的构造函数.(如果变量是由 ...
- tp5的include 标签 不能用了么
直接调用页头页尾 直接原样显示了 正解: 要注意 file后不能加空格, 不然放在 页头会报错, 放在其他地方则不会被解析. 以上是我的经历,供参考. {include file ='public/h ...
- python自动化开发-[第一天]-练习题
1.使用while循环输入 1 2 3 4 5 6 8 9 10 i = 1 while i < 11: if i == 7: i += 1 continue print (i) i += 1 ...
- CodeForces992E 二分 + 树状数组(线段树)
http://codeforces.com/problemset/problem/992/E 题意:给定一个序列 ai ,记其前缀和序列为 si ,有 q 个询问,每次单点修改,询问是否存在一个 ...
- 信用评分卡 (part 3of 7)
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...
- Linux检查和收集硬件信息的常用命令总结
Linux检查和收集硬件信息的常用命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux基础真的很重要,基础不牢,地动山摇.这句话我是听老男孩创始人冉总说的一句话,起初 ...
- Mybatis笔记二:接口式编程
目录 旧方法的弊端 接口式编程 接口式编程的好处 接口式编程的增删改查 旧方法的弊端 在Mybatis笔记一中,我们使用命名空间+id的方式实现了Mybatis的执行,不过这里的命名空间是我们随便写的 ...